#!/bin/sh #@@@@# LOGFILE="/home/sats/satsd/log/install.log"; plog(){ sudo -u sats tee -a /home/sats/satsd/log/install.log > /dev/null; } slog(){ echo "$1" | plog; } failexit(){ slog " > failed"; exit 127; } ################################################ #### ONLY ON FIRST BOOT #### ################################################ if [ -e /target/sync ]; then slog " ** sync target already exists"; exit 127; fi; # (x) If no network -> exit # slog " * 4. Checking connectivity"; max_try=5; while [ -n "`ping xdrm.io -q -c 1 -i 1 2>&1 > /dev/null`" ]; do slog " > waiting for network"; max_try=`expr $max_try - 1`; [ $max_try -lt 0 ] && failexit; sleep 5; done; slog " > done"; # [1] Installation #========================================================# # (1) Try to install necessary packages slog " * 5. Updating packages"; sudo apt-get update; test $? -eq 0 \ && slog " > done" \ || failexit; slog " * 6. Installing necessary packages"; sudo apt-get -y install git php5 php5-cli php5-curl python-dev; test $? -eq 0 \ && slog " > done" \ || failexit; BRANCH=$(sudo -u sats cat /home/sats/satsd/conf/machine.branch) > /dev/null; # (2) With git if installed # slog " * 7. Cloning source"; if `sudo -u sats test -d /home/sats/satsd/source`; then sudo rm -r /home/sats/satsd/source; fi; sudo -u sats git clone -b $BRANCH ssh://smmp-server/satsd/git /home/sats/satsd/source \ && slog " > done" \ || failexit; # (3) Clone SPI python library # slog " * 8. Cloning 'SPI-Py' lib"; if [ -d /home/pi/spi-lib ]; then slog " > done (already cloned)"; else git clone https://github.com/lthiery/SPI-Py.git /home/pi/spi-lib \ && slog " > done" \ || failexit; fi; # (4) Install SPI python library # slog " * 9. Installing 'SPI-Py' lib into the system"; cd /home/pi/spi-lib; sudo python setup.py build \ || failexit; sudo python setup.py install \ || failexit; slog " > done"; # [2] Synchronization #========================================================# # (1) Process sync # slog " * 10. Synchronizing the SATS with SMMP's server"; test "$(sudo -u sats /home/sats/satsd/source/lib/api/sync)" = "0" \ && slog " > done" \ || failexit; # (2) Create target file # slog " * 11. Creating target file 'sync'"; sudo -u sats touch /target/sync \ && slog " > done" \ || failexit; # (3) Reboot to activate SPI # slog " * 12. Launching first reboot"; sudo reboot;