blob: efd96e8764243b7eb4ef797bfc20d61bc5d68008 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import 'dart:core';
import 'dart:io';
/// A basic progress indicator that shows `[current/total]`, Ninja-style.
/// Updates in-place using ASCII control characters.
class ProgressBar {
final int complete;
int current = 0;
ProgressBar({this.complete}) {
stdout.write('[0/$complete]');
}
void update(int newValue) {
int prevLen = '[$current/$complete]'.length;
stdout.write('\b' * prevLen);
stdout.write('[$newValue/$complete]');
current = newValue;
}
void done() {
stdout.writeln();
}
}