123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #!/usr/bin/env bash
- # bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/misc/node-red-themes.sh)"
- set -o errexit
- show_menu(){
- YW=`echo "\033[33m"`
- RD=`echo "\033[01;31m"`
- BL=`echo "\033[36m"`
- CM='\xE2\x9C\x94\033'
- GN=`echo "\033[1;92m"`
- CL=`echo "\033[m"`
- echo -e "${RD} Backup your Node-Red flows before running this script!!${CL} \n "
- while true; do
- read -p "This will Install Node-Red Themes. Proceed(y/n)?" yn
- case $yn in
- [Yy]* ) break;;
- [Nn]* ) exit;;
- * ) echo "Please answer yes or no.";;
- esac
- done
- clear
- echo -e "${RD} Backup your Node-Red flows before installing any theme!!${CL} \n "
- printf "\n${BL}*********************************************${CL}\n"
- printf "${BL}**${YW} 1)${GN} Default Theme ${CL}\n"
- printf "${BL}**${YW} 2)${GN} Dark Theme ${CL}\n"
- printf "${BL}**${YW} 3)${GN} Dracula Theme ${CL}\n"
- printf "${BL}**${YW} 4)${GN} Midnight-Red Theme ${CL}\n"
- printf "${BL}**${YW} 5)${GN} Oled Theme ${CL}\n"
- printf "${BL}**${YW} 6)${GN} Solarized-Dark Theme ${CL}\n"
- printf "${BL}**${YW} 7)${GN} Solarized-Light Theme ${CL}\n"
- printf "${BL}*********************************************${CL}\n"
- printf "Please choose a theme from the menu and enter or ${RD}x to exit. ${CL}"
- read opt
- }
- option_picked(){
- msgcolor=`echo "\033[01;31m"`
- normal=`echo "\033[00;00m"`
- message=${@:-"${CL}Error: No message passed"}
- printf "${RD}${message}${CL}\n"
- }
- clear
- show_menu
- while [ "$opt" != " " ]
- do
- case $opt in
- 1) clear;
- option_picked "Installing Default Theme";
- THEME=
- JS=//
- break;
- ;;
- 2) clear;
- option_picked "Installing Dark Theme";
- THEME=dark
- break;
- ;;
- 3) clear;
- option_picked "Installing Dracula Theme";
- THEME=dracula
- break;
- ;;
- 4) clear;
- option_picked "Installing Midnight-Red Theme";
- THEME=midnight-red
- break;
- ;;
- 5) clear;
- option_picked "Installing Oled Theme";
- THEME=oled
- break;
- ;;
- 6) clear;
- option_picked "Installing Solarized-Dark Theme";
- THEME=solarized-dark
- break;
- ;;
- 7) clear;
- option_picked "Installing Solarized-Light Theme";
- THEME=solarized-light
- break;
- ;;
- x)exit;
- ;;
- \n)exit;
- ;;
- *)clear;
- option_picked "Please choose a theme from the menu";
- show_menu;
- ;;
- esac
- done
- echo -en "${GN} Installing ${THEME} Theme... "
- cd /root/.node-red
- if [ "${THEME}" = "" ]; then
- echo -e "${CM}${CL} \r"
- else
- npm install @node-red-contrib-themes/${THEME} &>/dev/null
- echo -e "${CM}${CL} \r"
- fi
- echo -en "${GN} Writing Settings... "
- cat <<EOF > /root/.node-red/settings.js
- module.exports = { uiPort: process.env.PORT || 1880,
- mqttReconnectTime: 15000,
- serialReconnectTime: 15000,
- debugMaxLength: 1000,
- functionGlobalContext: {
- },
- exportGlobalContextKeys: false,
- // Configure the logging output
- logging: {
- console: {
- level: "info",
- metrics: false,
- audit: false
- }
- },
- // Customising the editor
- editorTheme: {
- ${JS}theme: "${THEME}"
- },
- projects: {
- // To enable the Projects feature, set this value to true
- enabled: false
- }
- }
- EOF
- echo -e "${CM}${CL} \r"
- echo -en "${GN} Restarting Node-Red... "
- echo -e "${CM}${CL} \r"
- node-red-restart
- echo -en "${GN} Finished... ${CL} \n"
- exit
|