aboutsummaryrefslogtreecommitdiff
path: root/bin/luxcena-neo-cli.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/luxcena-neo-cli.sh')
-rwxr-xr-xbin/luxcena-neo-cli.sh105
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