Added user-friendly installer/uninstaller/updater
This commit is contained in:
parent
df3de3bcb7
commit
e32b004f11
91
installer.sh
Normal file
91
installer.sh
Normal file
@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
# Inkycal v2.0.0 bash installer
|
||||
|
||||
echo -e "\e[1mPlease select an option from below:"
|
||||
echo -e "\e[97mEnter \e[91m[1]\e[97m to update Inkycal" #Option 1 : UPDATE
|
||||
echo -e "\e[97mEnter \e[91m[2]\e[97m to install Inkycal" #Option 2 : INSTALL
|
||||
echo -e "\e[97mEnter \e[91m[3]\e[97m to uninstall Inkycal" #Option 3 : UNINSTALL
|
||||
echo -e "\e[97mConfirm your selection with [ENTER]"
|
||||
read -r -p 'Waiting for input... ' option
|
||||
|
||||
# Invalid number selected, abort
|
||||
if [ "$option" != 1 ] && [ "$option" != 2 ] && [ "$option" != 3 ];
|
||||
then echo -e "invalid number, aborting now" exit
|
||||
fi
|
||||
|
||||
# No option selected, abort
|
||||
if [ -z "$option" ];
|
||||
then echo -e "You didn't enter anything, aborting now." exit
|
||||
fi
|
||||
|
||||
# Uninstall Inkycal
|
||||
if [ "$option" = 1 ] || [ "$option" = 3 ]; then
|
||||
|
||||
# pip3 uninstall Inkycal
|
||||
echo -e "\e[1;36m"Uninstalling Inkycal.."\e[0m"
|
||||
pip3 uninstall Inkycal -y
|
||||
|
||||
# Remove crontab file
|
||||
echo -e "\e[1;36m"Replacing current crontab"\e[0m"
|
||||
(crontab -l ; echo "")| crontab -
|
||||
|
||||
echo -e "\e[1;36m"Uninstall complete."\e[0m"
|
||||
fi
|
||||
|
||||
# Update Inkycal
|
||||
if [ "$option" = 1 ]; then
|
||||
if [ -d "/home/$USER/Inkycal" ]; then
|
||||
echo -e "Found Inkycal folder in /home/$USER. Renaming it to Inkycal-old"
|
||||
mv Inkycal Inkycal-old
|
||||
fi
|
||||
fi
|
||||
|
||||
# Full uninstall - remove Inkycal folder
|
||||
if [ "$option" = 3 ]; then
|
||||
if [ -d "/home/$USER/Inkycal" ]; then
|
||||
echo -e "Found Inkycal folder in /home/$USER. Deleting previous Inkycal-folder"
|
||||
cd
|
||||
rm -rf Inkycal
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install update
|
||||
if [ "$option" = 1 ] || [ "$option" = 2 ]; then
|
||||
|
||||
# Cloning Inky-Calendar repo
|
||||
echo -e "\e[1;36m"Cloning Inkycal repo from Github"\e[0m"
|
||||
cd /home/"$USER" && git clone https://github.com/aceisace/Inkycal
|
||||
|
||||
# Installing dependencies
|
||||
echo -e "\e[1;36m"Installing Inkycal.."\e[0m"
|
||||
cd Inkycal && pip3 install -e ./
|
||||
|
||||
echo -e "\e[97mDo you want the software to start automatically at boot?"
|
||||
echo -e "\e[97mPress [Y] for yes or [N] for no. The default option is yes"
|
||||
echo -e "\e[97mConfirm your selection with [ENTER]"
|
||||
read -r -p 'Waiting for input... ' autostart
|
||||
|
||||
if [ "$autostart" != Y ] && [ "$autostart" != y ] && [ "$autostart" != N ] && [ "$autostart" != n ]; then
|
||||
echo -e "invalid input, aborting now" exit
|
||||
fi
|
||||
|
||||
if [ -z "$autostart" ] || [ "$autostart" = Y ] || [ "$autostart" = y ]; then
|
||||
# Installing crontab
|
||||
|
||||
echo -e "\e[1;36m"Creating inky_run.py file in home directory"\e[0m"
|
||||
|
||||
bash -c 'cat > /home/$USER/inky_run.py' << EOF
|
||||
from inkycal import Inkycal # Import Inkycal
|
||||
|
||||
inky = Inkycal(render = True) # Initialise Inkycal
|
||||
# If your settings.json file is not in /boot, use the full path: inky = Inkycal('path/to/settings.json', render=True)
|
||||
inky.test() # test if Inkycal can be run correctly, running this will show a bit of info for each module
|
||||
inky.run() # If there were no issues, you can run Inkycal nonstop
|
||||
EOF
|
||||
echo -e "\e[1;36m"Updating crontab"\e[0m"
|
||||
(crontab -l ; echo "@reboot python3 /home/$USER/inky_run.py &")| crontab -
|
||||
fi
|
||||
|
||||
# Final words
|
||||
echo -e "\e[1;36m"The install was successful. If autostart on boot was activated, inkycal will run on each boot."\e[0m"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user