X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/blobdiff_plain/08449c5aa1d8d5d5251bc84f86cdba74cded7ef5..6981ca84bffea1239a4ba03d695065e2011c8891:/install.sh?ds=sidebyside diff --git a/install.sh b/install.sh index 1136de8..5cde03b 100755 --- a/install.sh +++ b/install.sh @@ -1,9 +1,67 @@ #!/bin/bash -LIBRARY_VERSION=`cat library/setup.py | grep version | awk -F"'" '{print $2}'` -LIBRARY_NAME=`cat library/setup.py | grep name | awk -F"'" '{print $2}'` CONFIG=/boot/config.txt DATESTAMP=`date "+%Y-%M-%d-%H-%M-%S"` +CONFIG_BACKUP=false + +CONFIG_VARS=`python - < /dev/null 2>&1 + if [ "$?" == "1" ]; then + PACKAGES+=("$PACKAGE") + fi + done + PACKAGES="${PACKAGES[@]}" + if ! [ "$PACKAGES" == "" ]; then + echo "Installing missing packages: $PACKAGES" + sudo apt update + sudo apt install -y $PACKAGES + fi +} + +eval $CONFIG_VARS printf "$LIBRARY_NAME $LIBRARY_VERSION Python Library: Installer\n\n" @@ -15,31 +73,36 @@ fi cd library printf "Installing for Python 2..\n" +apt_pkg_install "${PY2_DEPS[@]}" python setup.py install if [ -f "/usr/bin/python3" ]; then printf "Installing for Python 3..\n" + apt_pkg_install "${PY3_DEPS[@]}" python3 setup.py install fi cd .. -printf "Backing up $CONFIG\n" -cp $CONFIG "config.preinstall-$DATESTAMP.txt" - -printf "Setting up i2c and SPI..\n" -raspi-config nonint do_spi 0 -raspi-config nonint do_i2c 0 - -printf "Setting up serial for PMS5003..\n" -# Disable serial terminal over /dev/ttyAMA0 -raspi-config nonint do_serial 1 -# Enable serial port -raspi-config nonint set_config_var enable_uart 1 $CONFIG -# Switch serial port to full UART for stability (may adversely affect bluetooth) -sed -i 's/^#dtoverlay=pi3-miniuart-bt/dtoverlay=pi3-miniuart-bt/' $CONFIG -if ! grep -q -E "^dtoverlay=pi3-miniuart-bt" $CONFIG; then - printf "dtoverlay=pi3-miniuart-bt\n" >> $CONFIG -fi +for ((i = 0; i < ${#SETUP_CMDS[@]}; i++)); do + CMD="${SETUP_CMDS[$i]}" + # Attempt to catch anything that touches /boot/config.txt and trigger a backup + if [[ "$CMD" == *"raspi-config"* ]] || [[ "$CMD" == *"$CONFIG"* ]] || [[ "$CMD" == *"\$CONFIG"* ]]; then + do_config_backup + fi + eval $CMD +done + +for ((i = 0; i < ${#CONFIG_TXT[@]}; i++)); do + CONFIG_LINE="${CONFIG_TXT[$i]}" + if ! [ "$CONFIG_LINE" == "" ]; then + do_config_backup + printf "Adding $CONFIG_LINE to $CONFIG\n" + sed -i "s/^#$CONFIG_LINE/$CONFIG_LINE/" $CONFIG + if ! grep -q "^$CONFIG_LINE" $CONFIG; then + printf "$CONFIG_LINE\n" >> $CONFIG + fi + fi +done printf "Done!\n"