diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-11-25 18:22:43 +0100 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-11-25 18:22:43 +0100 |
commit | c24b7503bc4f05dd700eca5bcc593e04d3c89720 (patch) | |
tree | 903272ed7dd99d596c2a57994d8584c248d75614 | |
parent | 244c692acada2604876475cfb4deea6da2f1382a (diff) | |
download | Luxcena-Neo-c24b7503bc4f05dd700eca5bcc593e04d3c89720.tar.gz Luxcena-Neo-c24b7503bc4f05dd700eca5bcc593e04d3c89720.zip |
:hammer: Tidy up script
-rwxr-xr-x | bin/luxcena-neo-cli.sh | 105 |
1 files changed, 66 insertions, 39 deletions
diff --git a/bin/luxcena-neo-cli.sh b/bin/luxcena-neo-cli.sh index 034d713..761459e 100755 --- a/bin/luxcena-neo-cli.sh +++ b/bin/luxcena-neo-cli.sh @@ -5,6 +5,38 @@ usage() { exit 1 } +function die() { + tput setaf 1 + printf "\n\nInstall failed.\n" + printf "Check the logfile at '/tmp/lucxena-neo.install.log'.\n" + printf "Use this command to see the last 30 lines of the file;\n" + printf " tail -n 30 /tmp/luxcena-neo.install.log" + tput sgr0 + exit 1 +} + +function dlgYN() { + tput sc + tput setaf 4 + printf "$1 (y/n)? " + while : + do + read -n 1 -p "" YNQuestionAnswer + if [[ $YNQuestionAnswer == "y" ]]; then + tput rc; tput el + printf ". $1?: \e[0;32mYes\e[0m\n" + tput sc + eval $2=1 # Set parameter 2 of input to the return value + break + elif [[ $YNQuestionAnswer == "n" ]]; then + tput rc; tput el + printf ". $1?: \e[0;31mNo\e[0m\n" + eval $2=0 # Set parameter 2 of input to the return value + break + fi + done +} + while getopts ":a:" o; do case "${o}" in a ) @@ -25,14 +57,23 @@ if [ "$action" == "update" ]; then tput sgr0 printf '\e[93m%s\e[0m\n\n' "-------------------" - sudo systemctl stop lxucena-neo + if [ "$EUID" -ne 0 ]; then + echo "You need to run this script as root." + echo "Try running with 'sudo ./bin/install.sh'" + exit 1 + fi + + systemctl stop lxucena-neo oldDir=$PWD - cd ~/luxcena-neo-install - git pull - export NODE_ENV=production - npm i --only=production + cd /home/lux-neo/luxcena-neo-install + runuser -l 'lux-neo' -c 'git pull' + runuser -l 'lux-neo' -c 'export NODE_ENV=production' + runuser -l 'lux-neo' -c 'npm i --only=production' cd $oldDir - sudo systemctl start luxcena-neo + printf "Update complete, run these commands to finish it completly:\n" + printf "sudo /home/lux-neo/luxcena-neo-install/bin/post-update.sh\n" + printf "sudo systemctl luxcena-neo start\n" + systemctl start luxcena-neo elif [ "$action" == "uninstall" ]; then tput setab 1 @@ -42,43 +83,29 @@ elif [ "$action" == "uninstall" ]; then tput setaf 8 printf "By uninstalling Luxcena-Neo you will loose all you data, including your scripts.\n\n" - tput sc - tput setaf 4 - printf ". Are you sure you want to uninstall (y/n)? " - while : - do - read -n 1 -p "" YNQuestionAnswer - if [[ $YNQuestionAnswer == "y" ]]; then - tput rc; tput el - printf ". Are you sure you want to uninstall? \e[0;32mYes\e[0m\n" - tput sc - sudo systemctl stop luxcena-neo || { printf "\n\nUninstall failed.\n"; exit 1; } - rm -rf ~/luxcena-neo-install || { printf "\n\nUninstall failed.\n"; exit 1; } - sudo rm /etc/systemd/system/luxcena-neo.service || { printf "\n\nUninstall failed.\n"; exit 1; } - tput rc; tput ed + dlgYN "Are you sure you want to uninstall?" res + if [ $res -eq 1 ]; then + systemctl stop luxcena-neo + deluser lux-neo + rm -rf /home/lux-neo + rm /etc/systemd/system/luxcena-neo.service - tput setaf 2 - printf "\nEverything should now be gone. To remove the last piece, enter this command:\n" - tput sgr0 - tput smso - printf "sudo rm /bin/luxcena-neo\n\n" - tput sgr0 - tput setaf 8 - printf "Well, some dependencies still exists. Those are:\n" - printf " - rpi_ws281x-library\n" - printf " - packages (nodejs scons python-dev swig)\n" - break - elif [[ $YNQuestionAnswer == "n" ]]; then - tput rc; tput el - printf ". Are you sure you want to uninstall? \e[0;31mNo\e[0m\n" - break - fi - done + tput setaf 2 + printf "\nEverything should now be gone. To remove the last piece, enter this command:\n" + tput sgr0 + tput smso + printf "sudo rm /bin/luxcena-neo\n\n" + tput sgr0 + tput setaf 8 + printf "Well, some dependencies still exists. Those are:\n" + printf " - rpi_ws281x-library\n" + printf " - packages (nodejs scons python-dev swig)\n" + fi elif [ "$action" == "start" ]; then - sudo systemctl start luxcena-neo + systemctl start luxcena-neo elif [ "$action" == "stop" ]; then - sudo systemctl stop luxcena-neo + systemctl stop luxcena-neo else usage fi |