update the updater

This commit is contained in:
Romain Bazile 2020-11-30 02:46:40 +01:00
parent 24c6c1fbc6
commit ff59c0cac6

View file

@ -1,14 +1,34 @@
#!/bin/bash #!/bin/bash
log="logger -t update.sh -s " log="logger -t update.sh -s "
${log} "Updating the main repository" function update(){
cd /home/pi/PlanktonScope
sudo killall -15 raspimjpeg sudo killall -15 raspimjpeg
sudo killall -15 python3 sudo killall -15 python3
git stash git stash
git pull git merge
git checkout stash@{0} -- config.json hardware.json git checkout stash@'{0}' -- config.json hardware.json
# TODO we need to change this to drop stash@{1} if changes made to the flow are to be restored by the user
git stash drop git stash drop
sudo systemctl restart nodered.service sudo systemctl restart nodered.service
}
${log} "Updating the main repository"
cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; }
# TODO We need to add here a way to load the latest version of this script and execute it again
remote=$(git ls-remote -h origin master | awk '{print $1}')
local=$(git rev-parse HEAD)
${log} "Local : $local - Remote: $remote"
if [[ "$local" == "$remote" ]]; then
${log} "nothing to do!"
else
git fetch
UPDATE=$(git diff --numstat origin/master scripts/bash/update.sh | awk '/update.sh/ {print $NF}')
if [[ -n "${UPDATE}" ]]; then
# Update the file and restart the script
git checkout origin/master scripts/bash/update.sh
exec scripts/bash/update.sh
fi
update
${log} "Done!" ${log} "Done!"
fi