mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
feat: use fewer system resources to draw the progress bar
There's reason to believe that upgrade scripts will run faster if the system isn't spending a non-insignificant amount of resources simply drawing the progress bar. Closes #7711 Some context: https://github.com/npm/npm/issues/11283
This commit is contained in:
@@ -204,16 +204,18 @@ Upgrade.process = function (files, skipCount, callback) {
|
|||||||
Upgrade.incrementProgress = function (value) {
|
Upgrade.incrementProgress = function (value) {
|
||||||
this.current += value || 1;
|
this.current += value || 1;
|
||||||
|
|
||||||
// Redraw the progress bar
|
// Redraw the progress bar every 100 units
|
||||||
var percentage = 0;
|
if (this.current % 100 === 0) {
|
||||||
var filled = 0;
|
var percentage = 0;
|
||||||
var unfilled = 15;
|
var filled = 0;
|
||||||
if (this.total) {
|
var unfilled = 15;
|
||||||
percentage = Math.floor((this.current / this.total) * 100) + '%';
|
if (this.total) {
|
||||||
filled = Math.floor((this.current / this.total) * 15);
|
percentage = Math.floor((this.current / this.total) * 100) + '%';
|
||||||
unfilled = Math.max(0, 15 - filled);
|
filled = Math.floor((this.current / this.total) * 15);
|
||||||
}
|
unfilled = Math.max(0, 15 - filled);
|
||||||
|
}
|
||||||
|
|
||||||
readline.cursorTo(process.stdout, 0);
|
readline.cursorTo(process.stdout, 0);
|
||||||
process.stdout.write(' [' + (filled ? new Array(filled).join('#') : '') + new Array(unfilled).join(' ') + '] (' + this.current + '/' + (this.total || '??') + ') ' + percentage + ' ');
|
process.stdout.write(' [' + (filled ? new Array(filled).join('#') : '') + new Array(unfilled).join(' ') + '] (' + this.current + '/' + (this.total || '??') + ') ' + percentage + ' ');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user