update: changes to install new modules

This commit is contained in:
Romain Bazile 2021-05-06 16:13:17 +02:00
parent 8753c76e6b
commit 6c580b0de1

View file

@ -1,7 +1,21 @@
#!/bin/bash #!/bin/bash
log="logger -t update.sh -s " log="logger -t update.sh -s "
if [[ $# == 1 ]]; then
BRANCH=$1
else
BRANCH="master"
fi
${log} "Updating the main repository to branch $BRANCH"
function restart(){
sudo nginx -t && sudo systemctl reload nginx
sudo systemctl restart nodered.service
}
function update(){ function update(){
cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; }
sudo killall -15 raspimjpeg sudo killall -15 raspimjpeg
sudo killall -15 python3 sudo killall -15 python3
git stash git stash
@ -9,31 +23,40 @@ function update(){
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 # 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 nginx -t && sudo systemctl reload nginx
sudo systemctl restart nodered.service
} }
function special(){ function special_before(){
${log} "Nothing special to do!" cd /home/pi/.node-red || { echo "/home/pi/.node-red does not exist"; exit 1; }
npm install copy-dependencies
${log} "Nothing else special to do before updating!"
} }
${log} "Updating the main repository" function special_after(){
cd /home/pi/.node-red || { echo "/home/pi/.node-red does not exist"; exit 1; }
node_modules/copy-dependencies/index.js projects/PlanktonScope ./
# updating and installing now whatever module has been added to package.json
npm update
${log} "Nothing else special to do after updating!"
}
cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; } cd /home/pi/PlanktonScope || { echo "/home/pi/PlanktonScope does not exist"; exit 1; }
remote=$(git ls-remote -h origin $BRANCH | awk '{print $1}')
remote=$(git ls-remote -h origin master | awk '{print $1}')
local=$(git rev-parse HEAD) local=$(git rev-parse HEAD)
if [[ "$local" == "$remote" ]]; then if [[ "$local" == "$remote" ]]; then
${log} "nothing to do!" ${log} "nothing to do!"
else else
${log} "Local and Remote are different, we have to update!" ${log} "Local and Remote are different, we have to update!"
git fetch git fetch
UPDATE=$(git diff --numstat origin/master scripts/bash/update.sh | awk '/update.sh/ {print $NF}') UPDATE=$(git diff --numstat origin/$BRANCH scripts/bash/update.sh | awk '/update.sh/ {print $NF}')
if [[ -n "${UPDATE}" ]]; then if [[ -n "${UPDATE}" ]]; then
# Update the file and restart the script # Update the file and restart the script
git checkout origin/master scripts/bash/update.sh git checkout origin/$BRANCH scripts/bash/update.sh
exec scripts/bash/update.sh exec scripts/bash/update.sh $BRANCH
fi fi
special special_before
update update
special_after
restart
${log} "Done!" ${log} "Done!"
fi fi