mTermRecordHTML.sh 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #!/bin/bash
  2. E='echo -e'; # -e включить поддержку вывода Escape последовательностей
  3. e='echo -en'; # -n не выводить перевод строки
  4. c="+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+"
  5. trap "R;exit" 2 #
  6. ESC=$( $e "\e")
  7. TPUT(){ $e "\e[${1};${2}H" ;}
  8. CLEAR(){ $e "\ec";}
  9. # 25 возможно это
  10. CIVIS(){ $e "\e[?25l";}
  11. # это цвет текста списка перед курсором при значении 0 в переменной UNMARK(){ $e "\e[0m";}
  12. MARK(){ $e "\e[1;45m";}
  13. # 0 это цвет списка
  14. UNMARK(){ $e "\e[0m";}
  15. R(){ CLEAR ;stty sane;CLEAR;}; # в этом варианте фон прозрачный
  16. HEAD(){ for (( a=2; a<=24; a++ ))
  17. do
  18. TPUT $a 1
  19. $E "\033[1;35m\xE2\x94\x82 \xE2\x94\x82\033[0m";
  20. done
  21. TPUT 3 3
  22. $E "\033[1;36m*** TermRecord ***\033[0m";
  23. TPUT 4 3
  24. $E "\033[90mЗапись терминальной сессии в файл HTML\033[0m";
  25. TPUT 5 1
  26. $E "\033[35m+----------------------------------------------------------------------------------------------------+\033[0m";
  27. TPUT 10 1
  28. $E "\033[35m+ Дополнительные аргументы: --------------------- Optional arguments: -------------------------------+\033[0m";
  29. TPUT 22 1
  30. $E "\033[35m+ Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter --------------------------------------------------------------------------+\033[0m";
  31. MARK;TPUT 1 1
  32. $E "$c";UNMARK;}
  33. i=0; CLEAR; CIVIS;NULL=/dev/null
  34. # 32 это расстояние сверху и 48 это расстояние слева
  35. FOOT(){ MARK;TPUT 25 1
  36. $E "$c";UNMARK;}
  37. # это управляет кнопками ввер/хвниз
  38. i=0; CLEAR; CIVIS;NULL=/dev/null
  39. #
  40. ARROW(){ IFS= read -s -n1 key 2>/dev/null >&2
  41. if [[ $key = $ESC ]];then
  42. read -s -n1 key 2>/dev/null >&2;
  43. if [[ $key = \[ ]]; then
  44. read -s -n1 key 2>/dev/null >&2;
  45. if [[ $key = A ]]; then echo up;fi
  46. if [[ $key = B ]];then echo dn;fi
  47. fi
  48. fi
  49. if [[ "$key" == "$($e \\x0A)" ]];then echo enter;fi;}
  50. M0(){ TPUT 6 3; $e " Установка \033[32minstall \033[0m";}
  51. M1(){ TPUT 7 3; $e " Использование \033[32mUsage \033[0m";}
  52. M2(){ TPUT 8 3; $e " Запуск \033[32mTermRecord \033[0m";}
  53. M3(){ TPUT 9 3; $e " Остановка \033[32mexit \033[0m";}
  54. #
  55. M4(){ TPUT 11 3; $e " Показать справку \033[32m-h --help \033[0m";}
  56. M5(){ TPUT 12 3; $e " Использовать либо скрипт, либо ttyrec \033[32m-b {script,ttyrec} --backend {script,ttyrec} \033[0m";}
  57. M6(){ TPUT 13 3; $e " Запустить команду и выйти \033[32m-c COMMAND --command COMMAND \033[0m";}
  58. M7(){ TPUT 14 3; $e " Pазмеры терминала \033[32m-d -h -w --dimensions -h -w \033[0m";}
  59. M8(){ TPUT 15 3; $e " Tолько JSON \033[32m --json \033[0m";}
  60. M9(){ TPUT 16 3; $e " Вывести только JavaScript \033[32m --js \033[0m";}
  61. M10(){ TPUT 17 3; $e " Файл для использования в качестве HTML шаблона \033[32m-m TEMPLATE_FILE --template-file TEMPLATE_FILE \033[0m";}
  62. M11(){ TPUT 18 3; $e " Файл для вывода в HTML \033[32m-o OUTPUT_FILE --output-file OUTPUT_FILE \033[0m";}
  63. M12(){ TPUT 19 3; $e " Файл скрипта для разбора \033[32m-s SCRIPT_FILE --script-file SCRIPT_FILE \033[0m";}
  64. M13(){ TPUT 20 3; $e " Файл синхронизации для разбора \033[32m-t TIMING_FILE --timing-file TIMING_FILE \033[0m";}
  65. M14(){ TPUT 21 3; $e " Полный путь к временным файлам \033[32m --tempfile TEMPFILE \033[0m";}
  66. #
  67. M15(){ TPUT 23 3; $e "\033[32m Exit \033[0m";}
  68. LM=15
  69. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  70. POS(){ if [[ $cur == up ]];then ((i--));fi
  71. if [[ $cur == dn ]];then ((i++));fi
  72. if [[ $i -lt 0 ]];then i=$LM;fi
  73. if [[ $i -gt $LM ]];then i=0;fi;}
  74. REFRESH(){ after=$((i+1)); before=$((i-1))
  75. if [[ $before -lt 0 ]];then before=$LM;fi
  76. if [[ $after -gt $LM ]];then after=0;fi
  77. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  78. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  79. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  80. INIT(){ R;HEAD;FOOT;MENU;}
  81. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  82. # Функция возвращения в меню
  83. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  84. while [[ "$O" != " " ]]; do case $i in
  85. 0) S=M0;SC;if [[ $cur == enter ]];then R;echo "
  86. TermRecord доступен в качестве пакета Python, поэтому вы можете установить его с помощью команды pip.
  87. Для начала, установите pip на вашу систему Linux. Затем установите TermRecord следующим образом.
  88. sudo pip install TermRecord
  89. ";ES;fi;;
  90. 1) S=M1;SC;if [[ $cur == enter ]];then R;echo "
  91. TermRecord [-h] [-b {script,ttyrec}] [-c COMMAND] [-d h w] [--json]
  92. [--js] [-m TEMPLATE_FILE] [-o OUTPUT_FILE] [-s SCRIPT_FILE]
  93. [-t TIMING_FILE] [--tempfile TEMPFILE]
  94. ";ES;fi;;
  95. 2) S=M2;SC;if [[ $cur == enter ]];then R;echo " TermRecord -o session.html";ES;fi;;
  96. 3) S=M3;SC;if [[ $cur == enter ]];then R;echo " Чтобы остановить запись нажмите Ctrl+d или можно набрать exit и нажать ENTER.";ES;fi;;
  97. #
  98. 4) S=M4;SC;if [[ $cur == enter ]];then R;echo "
  99. TermRecord -h
  100. #
  101. TermRecord --help
  102. ";ES;fi;;
  103. 5) S=M5;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  104. 6) S=M6;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  105. 7) S=M7;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  106. 8) S=M8;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  107. 9) S=M9;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  108. 10) S=M10;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  109. 11) S=M11;SC;if [[ $cur == enter ]];then R;echo " TermRecord -o session.html";ES;fi;;
  110. 12) S=M12;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  111. 13) S=M13;SC;if [[ $cur == enter ]];then R;echo " ";ES;fi;;
  112. 14) S=M14;SC;if [[ $cur == enter ]];then R;echo " Полный путь к временным файлам (будут добавлены расширения).";ES;fi;;
  113. #
  114. 15) S=M15;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
  115. esac;POS;done