diff --git a/update_misskey_git.sh b/update_misskey_git.sh index 08068fd..604c6e8 100755 --- a/update_misskey_git.sh +++ b/update_misskey_git.sh @@ -16,7 +16,8 @@ COMPOSE=docker-compose.yml # Backup destination directory DST=/usr/local/backup # Automatically stop, update and start the running instance -AUTOUPDATE=0 +AUTOUPDATE=1 +TMP=/tmp/.update_misskey.$$ ### if [ ! -d $CODE ] || [ ! -d $DATA ]; then @@ -24,8 +25,9 @@ if [ ! -d $CODE ] || [ ! -d $DATA ]; then exit 1 fi -# Take some care +# Take some care before upgrading echo "Backing up current code... (you really should have done yourself a data backup before upgrading, something like backup_postgres.sh)" +echo "$CODE will be archived in $DST/backup-code.tgz" tar -czf $DST/backup-code.tgz $CODE if [ $? -ne 0 ]; then echo "ERROR: something went wrong during backup..." @@ -33,11 +35,52 @@ if [ $? -ne 0 ]; then fi echo "Updating codebase with git..." -#git stash -#git checkout master -#git pull -#git submodule update --init -#git stash pop +cd $CODE + +git stash +if [ $? -ne 0 ]; then + echo "Error, bailing out" + exit 1 +fi + +git checkout master +if [ $? -ne 0 ]; then + echo "Error, bailing out" + exit 1 +fi + +# Compare version before/after pulling files +currentVersion=`grep version package.json | awk '{ print $2 }' | sed 's/\"//g' | sed 's/,//'` + +git pull | tee -a $TMP +if [ $? -ne 0 ]; then + echo "Error, bailing out" + exit 1 +fi + +grep -q "Already up to date." $TMP +if [ $? -eq 0 ]; then + echo "Your Misskey code is already up to date, version:$currentVersion." + rm -f $TMP + exit 0 +fi +rm -f $TMP + +latestVersion=`grep version package.json | awk '{ print $2 }' | sed 's/\"//g' | sed 's/,//'` +echo "Upgrade needed, current:$currentVersion latest:$latestVersion." + +git submodule update --init +if [ $? -ne 0 ]; then + echo "Error, bailing out" + exit 1 +fi + +git stash pop +if [ $? -ne 0 ]; then + echo "Error, bailing out" + exit 1 +fi + echo "Building new images... (it will take some time)" docker-compose --project-directory=$DATA --file $DATA/$COMPOSE build @@ -48,16 +91,20 @@ if [ $AUTOUPDATE -eq 0 ]; then echo "start_misskey.sh" else echo "Automatically updating the instance, fingers crossed" + echo -n "Stopping..." stop_misskey.sh if [ $? -ne 0 ]; then echo "ERROR: something went wrong when stopping the instance" exit 1 fi + echo "done." + echo -n "Starting..." start_misskey.sh if [ $? -ne 0 ]; then echo "ERROR: something went wrong when starting the instance" exit 1 fi + echo "done." fi exit 0