123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- #!/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"
- systemctl restart nodered
- echo -en "${GN} Finished... ${CL} \n"
- exit
|