Optimising Installer for new dependencies
Previously, the installer would only install dependencies when choosing the install option. The installer will install dependencies when updating as well. The installer will now ask before attempting to update the operating system when choosing the updating/installing option. When installing/updating, only those dependencies will be installed, which are missing on the system. This check is done by test-importing the module in python3. If it's not found, it's installed.
This commit is contained in:
parent
5f88b78f87
commit
19ab63930c
128
prototype.sh
128
prototype.sh
@ -4,8 +4,6 @@
|
|||||||
# Stability status of this installer: Confirmed with Raspbain Stretch Lite on 12th March 2019
|
# Stability status of this installer: Confirmed with Raspbain Stretch Lite on 12th March 2019
|
||||||
# Copyright by aceisace
|
# Copyright by aceisace
|
||||||
|
|
||||||
#TODO: Faster installation by checking if module is installed (by test-importing it in python3)
|
|
||||||
|
|
||||||
echo -e "\e[1mPlease select an option from below:"
|
echo -e "\e[1mPlease select an option from below:"
|
||||||
echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software"
|
echo -e "\e[97mEnter \e[91m1 \e[97m to update the E-Paper software"
|
||||||
echo -e "\e[97mEnter \e[91m2 \e[97m to install the E-Paper software"
|
echo -e "\e[97mEnter \e[91m2 \e[97m to install the E-Paper software"
|
||||||
@ -57,6 +55,20 @@ if [ "$option" = 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$option" = 2 ]; then
|
if [ "$option" = 2 ]; then
|
||||||
|
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 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[1mWould you like to update and upgrade the operating system first?"
|
echo -e "\e[1mWould you like to update and upgrade the operating system first?"
|
||||||
echo -e "\e[97mIt is not scrictly required, but highly recommended."
|
echo -e "\e[97mIt is not scrictly required, but highly recommended."
|
||||||
@ -82,32 +94,93 @@ if [ "$option" = 2 ]; then
|
|||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\e[1;36m"The installer will finish the rest now. You can enjoy a break in the meanwhile."\e[0m"
|
# Installing dependencies
|
||||||
|
|
||||||
# Installing a few packages which are missing on Raspbian Stretch Lite
|
#PYOWM for user pi
|
||||||
echo -e "\e[1;36m"Installing a few packages that are missing on Raspbian Stretch Lite..."\e[0m"
|
echo -e "\e[1;36m"Installing dependencies of the Inky-Calendar software"\e[0m"
|
||||||
sudo apt-get install python3-pip -y 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"Checking if pyowm is installed for user pi"\e[0m"
|
||||||
echo -e "\e[1;36m"Cleaning a bit of mess to free up some space..."\e[0m"
|
if python3.5 -c "import pyowm" &> /dev/null; then
|
||||||
sudo apt-get clean && sudo apt-get autoremove -y
|
echo 'pyowm is installed, skipping installtion of this package.'
|
||||||
echo ""
|
else
|
||||||
|
echo 'pywom is not installed, attempting to install now'
|
||||||
# Installing packages required by the main script
|
|
||||||
echo -e "\e[1;36m"Installing a few required packages for the E-Paper Software"\e[0m"
|
|
||||||
sudo pip3 install pyowm
|
|
||||||
sudo pip3 install Pillow==5.3.0
|
|
||||||
sudo pip3 install ics
|
|
||||||
sudo pip3 install feedparser
|
|
||||||
pip3 install pyowm
|
pip3 install pyowm
|
||||||
pip3 install ics
|
|
||||||
pip3 install feedparser
|
|
||||||
pip3 install Pillow==5.3.0
|
|
||||||
echo -e "\e[1;36m"Finished installing libraries"\e[0m"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$option" = 1 ] || [ "$option" = 2 ]; then
|
#PYOWM for user sudo
|
||||||
|
echo -e "\e[1;36m"Checking if pyowm is installed for user sudo"\e[0m"
|
||||||
|
if sudo python3.5 -c "import pyowm" &> /dev/null; then
|
||||||
|
echo 'pyowm is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'pywom is not installed, attempting to install now'
|
||||||
|
sudo pip3 install pyowm
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Pillow for user pi
|
||||||
|
echo -e "\e[1;36m"Checking if Pillow (PIL) (v=5.3.0) is installed for user pi"\e[0m"
|
||||||
|
if python3.5 -c "import PIL" &> /dev/null; then
|
||||||
|
echo 'Pillow is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'Pillow is not installed, attempting to install now'
|
||||||
|
pip3 install Pillow==5.3.0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Pillow for user pi
|
||||||
|
echo -e "\e[1;36m"Checking if Pillow (PIL) (v=5.3.0) is installed for user sudo"\e[0m"
|
||||||
|
if sudo python3.5 -c "import PIL" &> /dev/null; then
|
||||||
|
echo 'Pillow is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'Pillow is not installed, attempting to install now'
|
||||||
|
sudo pip3 install Pillow==5.3.0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Ics.py for user pi
|
||||||
|
echo -e "\e[1;36m"Checking if ics is installed for user pi"\e[0m"
|
||||||
|
if python3.5 -c "import ics" &> /dev/null; then
|
||||||
|
echo 'ics is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'ics is not installed, attempting to install now'
|
||||||
|
pip3 install ics
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Ics.py for user sudo
|
||||||
|
echo -e "\e[1;36m"Checking if ics is installed for user sudo"\e[0m"
|
||||||
|
if sudo python3.5 -c "import ics" &> /dev/null; then
|
||||||
|
echo 'ics is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'ics is not installed, attempting to install now'
|
||||||
|
sudo pip3 ics
|
||||||
|
fi
|
||||||
|
|
||||||
|
#feedparser for user pi
|
||||||
|
echo -e "\e[1;36m"Checking if feedparser is installed for user pi"\e[0m"
|
||||||
|
if python3.5 -c "import feedparser" &> /dev/null; then
|
||||||
|
echo 'feedparser is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'ics is not installed, attempting to install now'
|
||||||
|
pip3 install ics
|
||||||
|
fi
|
||||||
|
|
||||||
|
#feedparser for user sudo
|
||||||
|
echo -e "\e[1;36m"Checking if feedparser is installed for user sudo"\e[0m"
|
||||||
|
if sudo python3.5 -c "import feedparser" &> /dev/null; then
|
||||||
|
echo 'feedparser is installed, skipping installtion of this package.'
|
||||||
|
else
|
||||||
|
echo 'feedparser is not installed, attempting to install now'
|
||||||
|
sudo pip3 feedparser
|
||||||
|
fi
|
||||||
|
|
||||||
|
#sudo pip3 install pyowm
|
||||||
|
#sudo pip3 install Pillow==5.3.0
|
||||||
|
#sudo pip3 install ics
|
||||||
|
#sudo pip3 install feedparser
|
||||||
|
#pip3 install pyowm
|
||||||
|
#pip3 install ics
|
||||||
|
#pip3 install feedparser
|
||||||
|
#pip3 install Pillow==5.3.0
|
||||||
|
|
||||||
|
echo -e "\e[1;36m"Finished installing all dependencies"\e[0m"
|
||||||
|
|
||||||
# Clone the repository, then delete some non-required files
|
# Clone the repository, then delete some non-required files
|
||||||
echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m"
|
echo -e "\e[1;36m"Installing the Inky-Calendar Software for your display"\e[0m"
|
||||||
cd
|
cd
|
||||||
@ -131,8 +204,8 @@ if [ "$option" = 1 ] || [ "$option" = 2 ]; then
|
|||||||
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.5
|
Version: 1.6
|
||||||
Installer version: 1.5 (Early February 2019)
|
Installer version: 1.6 (Mid April 2019)
|
||||||
configuration file: /home/pi/Inky-Calendar/Calendar/settings.py
|
configuration file: /home/pi/Inky-Calendar/Calendar/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
|
||||||
@ -154,11 +227,6 @@ EOF
|
|||||||
|
|
||||||
sudo service supervisor start E-Paper
|
sudo service supervisor start E-Paper
|
||||||
|
|
||||||
# Installing some new dependencies
|
|
||||||
echo "Installing some new dependencies"
|
|
||||||
sudo apt-get install python-numpy -y
|
|
||||||
sudo pip3 install feedparser
|
|
||||||
pip3 install feedparser
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Final words
|
# Final words
|
||||||
|
Loading…
Reference in New Issue
Block a user