grocy/update.sh
2025-03-21 23:58:09 +01:00

34 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Start updating Grocy"
GROCY_RELEASE_URL=https://releases.grocy.info/latest
set -e
shopt -s extglob
pushd `dirname $0` > /dev/null
backupBundleFileName="backup_`date +%Y-%m-%d_%H-%M-%S`.tgz"
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Making a backup of the current installation in ./data/backups/$backupBundleFileName"
mkdir -p ./data/backups > /dev/null
touch ./data/backups/$backupBundleFileName
tar -zcvf ./data/backups/$backupBundleFileName --exclude ./data/backups . > /dev/null
find ./data/backups/*.tgz -mtime +60 -type f -delete
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Deleting everything except ./data and this script"
rm -rf !(data|update.sh) > /dev/null
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Downloading latest release"
rm -f ./grocy-latest.zip > /dev/null
wget $GROCY_RELEASE_URL -q --show-progress -O ./grocy-latest.zip > /dev/null
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Unzipping latest release"
unzip -o ./grocy-latest.zip > /dev/null
rm -f ./grocy-latest.zip > /dev/null
popd > /dev/null
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Make sure the new update.sh script is executable"
chmod +x ./update.sh
echo "[$(date '+%d/%m/%Y %H:%M:%S')] Finished updating Grocy"