|
730 | 730 |
|
731 | 731 | }; |
732 | 732 |
|
733 | | - var chr = { |
| 733 | + const chr = { |
734 | 734 |
|
735 | 735 | warn : '\u26A0', |
736 | 736 | cross : '\u274C', |
|
743 | 743 |
|
744 | 744 | }; |
745 | 745 |
|
746 | | - var colors = { |
| 746 | + const colors = { |
747 | 747 |
|
748 | 748 | black : '\x1b[30m', |
749 | 749 | red : '\x1b[31m', |
|
771 | 771 | }; |
772 | 772 |
|
773 | 773 |
|
774 | | - var cursor = { |
| 774 | + const cursor = { |
775 | 775 |
|
776 | | - to : (row,col)=>`\x1b[${row};${col}H`, |
| 776 | + to : (x,y)=>`\x1b[${y};${x}H`, |
777 | 777 | up : (n=1)=>`\x1b[${n}A`, |
778 | 778 | down : (n=1)=>`\x1b[${n}B`, |
779 | 779 | home : '\x1b[H', |
780 | 780 | save : '\x1b[s', |
781 | | - restore : '\x1b[u' |
| 781 | + restore : '\x1b[u', |
| 782 | + hide : '\x1b[?25l', |
| 783 | + show : '\x1b[?25h', |
782 | 784 |
|
783 | 785 | }; |
784 | 786 |
|
|
861 | 863 | }//resume |
862 | 864 | term.write.xy = (x,y,txt)=>{ |
863 | 865 | // Save cursor |
864 | | - term.write('\x1b[s'); |
| 866 | + term.write(cursor.save); |
865 | 867 | // Jump to x,y |
866 | | - term.write(`\x1b[${y};${x}H`); |
| 868 | + term.write(cursor.to(x,y)); |
867 | 869 | term.write(txt); |
868 | 870 | // restore cursor |
869 | | - term.write('\x1b[u'); |
| 871 | + term.write(cursor.restore); |
870 | 872 |
|
871 | 873 | }//xy |
872 | 874 |
|
|
947 | 949 |
|
948 | 950 | var str = '??'; |
949 | 951 | if(result.code==0)str = result.output; |
950 | | - var x = end_of_text(1); |
| 952 | + var x = term.end_of_text(1); |
951 | 953 | x+=2; |
952 | 954 | term.write.xy(x,1,'node '+str) |
953 | 955 | phase.ct = 2 |
|
961 | 963 | if(!phase.p2.result)return; |
962 | 964 | var str = '??'; |
963 | 965 | if(phase.p2.result.code==0)str = phase.p2.result.output; |
964 | | - var x = end_of_text(1); |
| 966 | + var x = term.end_of_text(1); |
965 | 967 | x+=2; |
966 | 968 | term.write.xy(x,1,'npm '+str); |
967 | 969 | phase.ct = 3; |
|
1156 | 1158 | let i = 0; |
1157 | 1159 |
|
1158 | 1160 | // Hide the cursor so it doesn't flicker |
1159 | | - term.write('\x1b[?25l'); |
| 1161 | + term.write(cursor.hide); |
1160 | 1162 |
|
1161 | 1163 | spinner.timer = setInterval(() => { |
1162 | 1164 | // \r moves to start of line, colors.cyan makes it pop |
|
1178 | 1180 | // \x1b[K clears from cursor to end of line |
1179 | 1181 | term.write(`\r\x1b[K${colors.green}✔${colors.reset} ${finalMsg}\r`); |
1180 | 1182 | // Show cursor |
1181 | | - term.write('\x1b[?25h'); |
| 1183 | + term.write(cursor.show); |
1182 | 1184 |
|
1183 | 1185 | }//stop |
1184 | 1186 |
|
|
0 commit comments