Please don't use this yet

This is the first commit for release v1.7. It was adjusted to work on the new release (v1.7). The code has been cleaned up and runs faster now. It's also possible to run the software even with a different username than 'pi'. Supervisor handles launching at boot more efficiently and gives up running the main file if the software won't run for at least 30 seconds.
This commit is contained in:
Ace 2019-12-17 00:44:27 +01:00 committed by GitHub
parent 81d03619ff
commit d2683a6628
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,81 +10,49 @@ echo -e "\e[97mConfirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' option read -r -p 'Waiting for input... ' option
# Invalid number selected, abort # Invalid number selected, abort
if [ "$option" != 1 ] && [ "$option" != 2 ] && [ "$option" != 3 ]; then if [ "$option" != 1 ] && [ "$option" != 2 ] && [ "$option" != 3 ]; then echo -e "invalid number, aborting now" exit
echo -e "invalid number, aborting now"
exit
fi fi
# No option selected, abort # No option selected, abort
if [ -z "$option" ]; then if [ -z "$option" ]; then echo -e "You didn't enter anything, aborting now." exit
echo -e "You didn't enter anything, aborting now."
exit
fi fi
# What to do when uninstalling software # What to do when uninstalling software
if [ "$option" = 3 ]; then if [ "$option" = 3 ]; then
echo -e "\e[1;36m"Removing the E-Paper software now..."\e[0m"
pip3 uninstall Pillow -y pyowm -y ics -y feedparser -y && sudo apt-get remove supervisor -y && sudo apt-get clean && sudo apt-get autoremove -y # Remove requirements of software
if [ -e /etc/supervisor/conf.d/Inky-Calendar.conf ]; then echo -e "\e[1;36m"Removing requirements for Inky-Calendar software"\e[0m"
sudo rm /etc/supervisor/conf.d/Inky-Calendar.conf cd /home/$USER/Inky-Calendar && pip3 uninstall -r requirements.txt && sudo apt-get clean && sudo apt-get autoremove -y
# Remove configuration file for supervisor if it exists
if [ -e /etc/supervisor/conf.d/Inky-Calendar.conf ]; then sudo rm /etc/supervisor/conf.d/Inky-Calendar.conf
fi fi
# Print message that libraries have been uninstalled now
echo -e "\e[1;36m"The libraries have been removed successfully"\e[0m" echo -e "\e[1;36m"The libraries have been removed successfully"\e[0m"
sleep 1 sleep 2
# Remove the Inky-Calendar directory if it exists
echo -e "Removing the Inky-Calendar folder if it exists" echo -e "Removing the Inky-Calendar folder if it exists"
if [ -d "/home/pi/Inky-Calendar" ]; then if [ -d "/home/$USER/Inky-Calendar" ]; then
sudo rm -r /home/pi/Inky-Calendar/ sudo rm -r /home/$USER/Inky-Calendar/
echo -e "\e[1;36m"Found Inky-Calendar folder and deleted it"\e[0m" echo -e "\e[1;36m"Found Inky-Calendar folder and deleted it"\e[0m"
fi fi
echo -e "\e[1;36m"All done!"\e[0m" echo -e "\e[1;36m"All done!"\e[0m"
fi fi
if [ "$option" = 1 ]; then #UPDATE software if [ "$option" = 1 ]; then # UPDATE software
echo -e "\e[1;36m"Checking if the Inky-Calendar folder exists..."\e[0m" echo -e "\e[1;36m"Checking if the Inky-Calendar folder exists..."\e[0m"
if [ -d "/home/pi/Inky-Calendar" ]; then if [ -d "/home/$USER/Inky-Calendar" ]; then
echo -e "Found Inky-Calendar directory in /home/pi" echo -e "Found Inky-Calendar directory in /home/$USER"
sleep 2 sleep 2
echo -e "To prevent overwriting the Inky-Calendar folder, the installer will not continue." echo -e "To prevent overwriting the Inky-Calendar folder, the installer will not continue."
echo -e "Please rename the Inky-Calendar folder and then re-run the installer" echo -e "Please rename the Inky-Calendar folder and then re-run the installer"
exit exit
else
echo -e "\e[1;36m"No folder named 'Inky-Calendar' found. Continuing"\e[0m"
echo -e "\e[97mPlease type [y] to force-update or [n] to abort c and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update_anyway
if [ "$update_anyway" != Y ] && [ "$update_anyway" != y ] && [ "$update_anyway" != N ] && [ "$update_anyway" != n ]; then
echo -e "invalid input, aborting now"
exit
fi
if [ -z "$update_anyway" ]; then
echo -e "You didn't enter anything, aborting now."
exit
fi
if [ "$update_anyway" = Y ] || [ "$update_anyway" = y ]; then
echo "Updating now..."
else
echo -e "Not attempting to update, exiting now."
exit
fi
fi fi
fi fi
if [ "$option" = 2 ]; then # Install software if [ "$option" = 1 ] || [ "$option" = 2 ]; then # This happens when installing or updating
echo -e "\e[1;36m"Setting up the system by installing some required libraries for python3"\e[0m"
# Installing a few packages which are missing on Raspbian Stretch Lite
echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m"
sudo apt-get install python3-pip -y
sudo apt-get install python-rpi.gpio-dbgsym -y python3-rpi.gpio -y python-rpi.gpio -y python3-rpi.gpio-dbgsym -y python3-spidev -y git -y libopenjp2-7-dev -y libtiff5 -y python3-numpy -y
echo ""
# Running apt-get clean and apt-get autoremove
echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m"
sudo apt-get clean && sudo apt-get autoremove -y
echo ""
fi
if [ "$option" = 1 ] || [ "$option" = 2 ]; then
# Ask to update system # Ask to update system
echo -e "\e[1;36m"Would you like to update and upgrade the operating system first?"\e[0m" echo -e "\e[1;36m"Would you like to update and upgrade the operating system first?"\e[0m"
sleep 1 sleep 1
@ -95,13 +63,10 @@ if [ "$option" = 1 ] || [ "$option" = 2 ]; then
echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]" echo -e "\e[97mPlease type [y] for yes or [n] for no and confirm your selection with [ENTER]"
read -r -p 'Waiting for input... ' update read -r -p 'Waiting for input... ' update
if [ "$update" != Y ] && [ "$update" != y ] && [ "$update" != N ] && [ "$update" != n ]; then if [ "$update" != Y ] && [ "$update" != y ] && [ "$update" != N ] && [ "$update" != n ]; then echo -e "invalid input, aborting now" exit
echo -e "invalid input, aborting now"
exit
fi fi
if [ -z "$update" ]; then
echo -e "You didn't enter anything, aborting now." if [ -z "$update" ]; then echo -e "You didn't enter anything, aborting now." exit
exit
fi fi
if [ "$update" = Y ] || [ "$update" = y ]; then if [ "$update" = Y ] || [ "$update" = y ]; then
@ -109,46 +74,30 @@ if [ "$option" = 1 ] || [ "$option" = 2 ]; then
echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m" echo -e "\e[1;36m"Running apt-get update and apt-get dist-upgrade for you..."\e[0m"
sleep 1 sleep 1
echo -e "\e[1;36m"This will take a while, sometimes up to 1 hour"\e[0m" echo -e "\e[1;36m"This will take a while, sometimes up to 1 hour"\e[0m"
sudo apt-get update && sudo apt-get dist-upgrade -y sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get clean
echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m" echo -e "\e[1;36m"System successfully updated and upgraded!"\e[0m"
echo "" echo ""
fi fi
# Cloning Inky-Calendar repo
echo -e "\e[1;36m"Cloning Inky-Calendar repo from Github"\e[0m"
cd /home/$USER && git clone -b dev https://github.com/aceisace/Inky-Calendar
# Installing dependencies # Installing dependencies
echo -e "\e[1;36m"Installing requirements for Inky-Calendar software"\e[0m"
cd /home/$USER/Inky-Calendar && pip3 install -r requirements.txt
#PYOWM (v2.10.0) for user pi # Create symlinks of settings and configuration file
echo -e "\e[1;36m"Installing dependencies for the Inky-Calendar software"\e[0m" ln -s /home/$USER/Inky-Calendar/settings/settings.py /home/$USER/Inky-Calendar/modules/
ln -s /home/$USER/Inky-Calendar/settings/configuration.py /home/$USER/Inky-Calendar/modules/
pip3 install pyowm==2.10.0 Pillow==5.3.0 ics==0.4 feedparser==5.2.1 pytz==2019.3
echo -e "\e[1;36m"Finished installing all dependencies"\e[0m"
# Clone the repository, then delete some non-required files
echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m"
cd
git clone https://github.com/aceisace/Inky-Calendar Inky-Calendar-temp
mkdir Inky-Calendar
cd Inky-Calendar-temp
cp -r Calendar /home/pi/Inky-Calendar/
cp README.md /home/pi/Inky-Calendar/
cp LICENSE /home/pi/Inky-Calendar/
cp -r .git /home/pi/Inky-Calendar/
# Make a copy of the sample settings.py file
cd /home/pi/Inky-Calendar/Calendar
cp settings.py.sample settings.py
# Remove the downloaded (temporary) directory
cd
sudo rm -r Inky-Calendar-temp
# add a short info # add a short info
cat > /home/pi/Inky-Calendar/Info.txt << EOF cat > /home/pi/Inky-Calendar/Info.txt << EOF
This document contains a short info of the Inky-Calendar software version This document contains a short info of the Inky-Calendar software version
Version: 1.7 Version: 1.7
Installer version: 1.7 (Early December 2019) Installer version: 1.7 (Mid December 2019)
configuration file: /home/pi/Inky-Calendar/settings/settings.py settings file: /home/pi/Inky-Calendar/settings/settings.py
If the time was set correctly, you installed this software on: If the time was set correctly, you installed this software on:
EOF EOF
echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt echo "$(date)" >> /home/pi/Inky-Calendar/Info.txt
@ -158,18 +107,19 @@ EOF
echo -e "\e[1;36m"Setting up auto-start of script at boot"\e[0m" echo -e "\e[1;36m"Setting up auto-start of script at boot"\e[0m"
sudo apt-get install supervisor -y sudo apt-get install supervisor -y
sudo bash -c 'cat > /etc/supervisor/conf.d/E-Paper.conf' << EOF sudo bash -c 'cat > /etc/supervisor/conf.d/inkycal.conf' << EOF
[program:Inky-Calendar] [program:Inky-Calendar]
command = /usr/bin/python3 /home/pi/Inky-Calendar/modules/inkycal.py command = /usr/bin/python3 /home/$USER/Inky-Calendar/modules/inkycal.py
stdout_logfile = /home/$USER/Inky-Calendar/logs/logfile.log
stdout_logfile = /home/pi/Inky-Calendar/logs/logfile.log
stdout_logfile_maxbytes = 5MB stdout_logfile_maxbytes = 5MB
stderr_logfile = /home/pi/Inky-Calendar/logs/errors.log stderr_logfile = /home/$USER/Inky-Calendar/logs/errors.log
stderr_logfile_maxbytes = 5MB stderr_logfile_maxbytes = 5MB
autorestart = true user = $USER
startsecs = 30
EOF EOF
sudo service supervisor start E-Paper sudo service supervisor reload
sudo service supervisor start Inky-Calendar
echo "" echo ""
@ -185,5 +135,5 @@ EOF
echo -e "\e[1;36m"file to /home/pi/Inky-Calendar/settings/setting.py"\e[0m" echo -e "\e[1;36m"file to /home/pi/Inky-Calendar/settings/setting.py"\e[0m"
echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m" echo -e "\e[1;36m"You can test if the programm works by typing:"\e[0m"
echo -e "\e[1;36m"python3 /home/pi/Inky-Calendar/Calendar/E-Paper.py"\e[0m" echo -e "\e[1;36m"python3 /home/$USER/Inky-Calendar/Calendar/E-Paper.py"\e[0m"
fi fi