Cleanup after backup, fixes generate-config, updates immich

This commit is contained in:
2026-05-09 09:10:20 +02:00
parent 81834b3851
commit f806bda21b
26 changed files with 454 additions and 172 deletions
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
set -o errexit -o pipefail -o nounset -o noclobber
database=$1
application=$2
file="/home/$(whoami)/.config/containers/systemd/user/${database}.service"
if [[ ! -f "${file}" ]]; then
echo "File ${file} not found"
exit 1
fi
content="$(cat "${file}")"
version_pattern="^Image=docker.io/postgres:([\d]+)$"
line=""
new_line=""
if [[ "${content}" =~ ${version_pattern} ]]; then
line="${BASH_REMATCH[0]}"
version="${BASH_REMATCH[1]}"
new_version="$(("${version}" + 1))"
new_line="Image=docker.io/postgres:${new_version}"
else
echo "Version not found in ${file}"
exit 1
fi
systemctl --user stop "${application}" "${database}"
podman run "${database}"
podman exec -it "${database}" pg_dumpall -U postgres > dump.sql
podman stop "${database}"
podman volume create db_backup
podman run --rm -it -v "${database}":/from -v db_backup:/to ubuntu bash -c "cd /from ; cp -av . /to"
sed -i "s/${line}/${new_line}/" "${file}"
sed -i "s/Pod=${application}.pod/#Pod=${application}.pod/" "${file}"
sed -i "s/StartWithPod=true/#StartWithPod=true/" "${file}"
systemctl --user daemon-reload
systemctl --user start "${database}"
podman exec -T "${database}" psql -U postgres < dump.sql
read -n 1 -s -r -p "Press any key to continue..."
systemctl --user stop "${database}"
podman volume rm db_backup
rm -f dump.sql
sed -i "s/#Pod=${application}.pod/Pod=${application}.pod/" "${file}"
sed -i "s/#StartWithPod=true/StartWithPod=true/" "${file}"
systemctl --user daemon-reload
systemctl --user start "${application}"