Fix console fuckery to allow running in a headless terminal, and to fix flickering of output.

Signed-off-by: TheArcaneBrony <myrainbowdash949@gmail.com>
This commit is contained in:
TheArcaneBrony 2023-01-13 13:09:09 +01:00
parent 39f2c0dbe3
commit aa8a6d6248

View File

@ -198,17 +198,15 @@ const processFile = async (name) => {
while (INDEX_SCRIPTS.length > 0) { while (INDEX_SCRIPTS.length > 0) {
const asset = INDEX_SCRIPTS.shift(); const asset = INDEX_SCRIPTS.shift();
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write( process.stdout.write(
`Scraping asset ${asset}. Remaining: ${INDEX_SCRIPTS.length}`, `Scraping asset ${asset}. Remaining: ${INDEX_SCRIPTS.length} \r`,
); );
const newAssets = await processFile(asset); const newAssets = await processFile(asset);
assets.push(...newAssets); assets.push(...newAssets);
} }
process.stdout.moveCursor(0, 1); console.log();
const CACHE_MISSES = ( const CACHE_MISSES = (
await fs.readFile(path.join(CACHE_PATH, "..", "cacheMisses")) await fs.readFile(path.join(CACHE_PATH, "..", "cacheMisses"))
@ -219,10 +217,9 @@ const processFile = async (name) => {
.split("\n"); .split("\n");
while (CACHE_MISSES.length > 0) { while (CACHE_MISSES.length > 0) {
const asset = CACHE_MISSES.shift(); const asset = CACHE_MISSES.shift();
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write( process.stdout.write(
`Scraping cache misses ${asset}. Remaining: ${CACHE_MISSES.length}`, `Scraping cache misses ${asset}. Remaining: ${CACHE_MISSES.length} \r`,
); );
if (existsSync(path.join(CACHE_PATH, `${asset}`))) { if (existsSync(path.join(CACHE_PATH, `${asset}`))) {
@ -239,10 +236,8 @@ const processFile = async (name) => {
while (existing.length > 0) { while (existing.length > 0) {
var file = existing.shift(); var file = existing.shift();
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write( process.stdout.write(
`Patching existing ${file}. Remaining: ${existing.length}.`, `Patching existing ${file}. Remaining: ${existing.length}. \r`,
); );
var text = await fs.readFile(path.join(CACHE_PATH, file)); var text = await fs.readFile(path.join(CACHE_PATH, file));
@ -257,7 +252,7 @@ const processFile = async (name) => {
} }
} }
process.stdout.moveCursor(0, 1); console.log();
let rates = []; let rates = [];
let lastFinished = Date.now(); let lastFinished = Date.now();
@ -278,8 +273,6 @@ const processFile = async (name) => {
: 1; : 1;
const finishTime = averageRate * (assets.length - i); const finishTime = averageRate * (assets.length - i);
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write( process.stdout.write(
`Caching asset ${asset}. ` + `Caching asset ${asset}. ` +
`${i}/${assets.length - 1} = ${Math.floor( `${i}/${assets.length - 1} = ${Math.floor(
@ -289,6 +282,8 @@ const processFile = async (name) => {
// Date.now() + finishTime, // Date.now() + finishTime,
// ).toLocaleTimeString()}`, // ).toLocaleTimeString()}`,
); );
//not adding to the previous mess, incase the finish time is added back or something
process.stdout.write(" \r");
promises.push(processFile(asset)); promises.push(processFile(asset));
// await processFile(asset); // await processFile(asset);