node-red-themes.sh 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #!/usr/bin/env bash
  2. # bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/node-red-themes.sh)"
  3. set -o errexit
  4. show_menu(){
  5. YW=`echo "\033[33m"`
  6. RD=`echo "\033[01;31m"`
  7. BL=`echo "\033[36m"`
  8. CM='\xE2\x9C\x94\033'
  9. GN=`echo "\033[1;92m"`
  10. CL=`echo "\033[m"`
  11. echo -e "${RD} Backup your Node-Red flows before running this script!!${CL} \n "
  12. while true; do
  13. read -p "This will Install Node-Red Themes. Proceed(y/n)?" yn
  14. case $yn in
  15. [Yy]* ) break;;
  16. [Nn]* ) exit;;
  17. * ) echo "Please answer yes or no.";;
  18. esac
  19. done
  20. clear
  21. echo -e "${RD} Backup your Node-Red flows before installing any theme!!${CL} \n "
  22. printf "\n${BL}*********************************************${CL}\n"
  23. printf "${BL}**${number} 1)${RD} Dark Theme ${CL}\n"
  24. printf "${BL}**${number} 2)${RD} Dracula Theme ${CL}\n"
  25. printf "${BL}**${number} 3)${RD} Midnight-Red Theme ${CL}\n"
  26. printf "${BL}**${number} 4)${RD} Oled Theme ${CL}\n"
  27. printf "${BL}**${number} 5)${RD} Solarized-Dark Theme ${CL}\n"
  28. printf "${BL}**${number} 6)${RD} Solarized-Light Theme ${CL}\n"
  29. printf "${BL}*********************************************${CL}\n"
  30. printf "Please choose a theme from the menu and enter or ${RD}x to exit. ${CL}"
  31. read opt
  32. }
  33. option_picked(){
  34. msgcolor=`echo "\033[01;31m"`
  35. normal=`echo "\033[00;00m"`
  36. message=${@:-"${CL}Error: No message passed"}
  37. printf "${RD}${message}${CL}\n"
  38. }
  39. clear
  40. show_menu
  41. while [ $opt != '' ]
  42. do
  43. if [ $opt = '' ]; then
  44. exit;
  45. else
  46. case $opt in
  47. 1) clear;
  48. option_picked "Installing Dark Theme";
  49. THEME=dark
  50. break;
  51. ;;
  52. 2) clear;
  53. option_picked "Installing Dracula Theme";
  54. THEME=dracula
  55. break;
  56. ;;
  57. 3) clear;
  58. option_picked "Installing Midnight-Red Theme";
  59. THEME=midnight-red
  60. break;
  61. ;;
  62. 4) clear;
  63. option_picked "Installing Oled Theme";
  64. THEME=oled
  65. break;
  66. ;;
  67. 5) clear;
  68. option_picked "Installing Solarized-Dark Theme";
  69. THEME=solarized-dark
  70. break;
  71. ;;
  72. 5) clear;
  73. option_picked "Installing Solarized-Light Theme";
  74. THEME=solarized-light
  75. break;
  76. ;;
  77. x)exit;
  78. ;;
  79. \n)exit;
  80. ;;
  81. *)clear;
  82. option_picked "Please choose a theme from the menu";
  83. show_menu;
  84. ;;
  85. esac
  86. fi
  87. done
  88. echo -en "${GN} Updating Container OS... "
  89. apt-get update &>/dev/null
  90. apt-get -qqy upgrade &>/dev/null
  91. echo -e "${CM}${CL} \r"
  92. echo -en "${GN} Installing ${THEME} Theme... "
  93. cd /root/.node-red
  94. npm install @node-red-contrib-themes/${THEME} &>/dev/null
  95. echo -e "${CM}${CL} \r"
  96. echo -en "${GN} Writing Settings... "
  97. cat <<EOF > /root/.node-red/settings.js
  98. module.exports = { uiPort: process.env.PORT || 1880,
  99. mqttReconnectTime: 15000,
  100. serialReconnectTime: 15000,
  101. debugMaxLength: 1000,
  102. functionGlobalContext: {
  103. },
  104. exportGlobalContextKeys: false,
  105. // Configure the logging output
  106. logging: {
  107. console: {
  108. level: "info",
  109. metrics: false,
  110. audit: false
  111. }
  112. },
  113. // Customising the editor
  114. editorTheme: {
  115. theme: "${THEME}"
  116. },
  117. projects: {
  118. // To enable the Projects feature, set this value to true
  119. enabled: false
  120. }
  121. }
  122. EOF
  123. echo -e "${CM}${CL} \r"
  124. echo -en "${GN} Restarting Node-Red... "
  125. echo -e "${CM}${CL} \r"
  126. node-red-restart
  127. echo -en "${GN} Finished... ${CL} \n"
  128. exit