mirror of
https://github.com/actions/setup-python.git
synced 2025-06-15 16:57:12 +02:00
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
const ESC = '\u001B[';
|
|
const clear = '\u0007';
|
|
const beep = '\u0007';
|
|
|
|
const cursor = {
|
|
to(x, y) {
|
|
if (!y) return `${ESC}${x + 1}G`;
|
|
return `${ESC}${y + 1};${x + 1}H`;
|
|
},
|
|
move(x, y) {
|
|
let ret = '';
|
|
|
|
if (x < 0) ret += `${ESC}${-x}D`;
|
|
else if (x > 0) ret += `${ESC}${x}C`;
|
|
|
|
if (y < 0) ret += `${ESC}${-y}A`;
|
|
else if (y > 0) ret += `${ESC}${y}B`;
|
|
|
|
return ret;
|
|
},
|
|
up: (count = 1) => `${ESC}${count}A`,
|
|
down: (count = 1) => `${ESC}${count}B`,
|
|
forward: (count = 1) => `${ESC}${count}C`,
|
|
backward: (count = 1) => `${ESC}${count}D`,
|
|
nextLine: (count = 1) => `${ESC}E`.repeat(count),
|
|
prevLine: (count = 1) => `${ESC}F`.repeat(count),
|
|
left: `${ESC}G`,
|
|
hide: `${ESC}?25l`,
|
|
show: `${ESC}?25h`
|
|
}
|
|
|
|
const scroll = {
|
|
up: (count = 1) => `${ESC}S`.repeat(count),
|
|
down: (count = 1) => `${ESC}T`.repeat(count)
|
|
}
|
|
|
|
const erase = {
|
|
screen: `${ESC}2J`,
|
|
up: (count = 1) => `${ESC}1J`.repeat(count),
|
|
down: (count = 1) => `${ESC}J`.repeat(count),
|
|
line: `${ESC}2K`,
|
|
lineEnd: `${ESC}K`,
|
|
lineStart: `${ESC}1K`,
|
|
lines(count) {
|
|
let clear = '';
|
|
for (let i = 0; i < count; i++)
|
|
clear += this.line + (i < count - 1 ? cursor.up() : '');
|
|
if (count)
|
|
clear += cursor.left;
|
|
return clear;
|
|
}
|
|
}
|
|
|
|
module.exports = { cursor, scroll, erase, beep, clear };
|