Merge branch 'main' of gitea:ezri/dotfiles

This commit is contained in:
Ezri Brimhall 2024-03-19 13:30:29 -06:00
commit 49863dd233
Signed by: ezri
GPG Key ID: 058A78E5680C6F24
2 changed files with 86 additions and 2 deletions

View File

@ -90,8 +90,8 @@
{
"index": 15,
"name": "minecraft",
"exec": "prism-launcher",
"program_name": "prism-launcher"
"exec": "prismlauncher",
"program_name": "prismlauncher"
},
{
"index": 16,

84
.local/bin/backup.sh Executable file
View File

@ -0,0 +1,84 @@
#!/bin/bash
REPO_SERVER_SSH="spacedock-backups"
REPO_SERVER_HOSTNAME="spacedock.servers.ezri.dev"
export BORG_REPO=ssh://${REPO_SERVER_SSH}/~/$(</etc/hostname)/${USER}
# Extract the key from the secret service
export BORG_PASSPHRASE=$(secret-tool lookup service borgbackup account ezri@normandy)
exclude_dirs=(
"$HOME/.cache"
"$HOME/.local/share/Steam"
"$HOME/Downloads"
"$HOME/.local/share/Trash"
"$HOME/.local/share/CKAN"
"$HOME/.local/state"
"/games/steamapps/downloading/"
"/secondary/SteamLibrary/steamapps/downloading/"
"/games/steamapps/shadercache/"
"/secondary/SteamLibrary/steamapps/shadercache/"
"/secondary/lost+found/"
)
# Back up home directory and steam library
backup_dirs=(
"$HOME"
"/games"
"/secondary"
)
trap 'echo Backup interrupted >&2; exit 2' INT TERM
# Ensure we can connect to the remote host
while true; do
ping -c 1 -W 1 ${REPO_SERVER_HOSTNAME} > /dev/null
if [ $? -eq 0 ]; then
break
fi
echo "Could not connect to ${REPO_SERVER_HOSTNAME}, retrying in 5 seconds..."
sleep 5
done
echo "Starting backup..."
borg create \
--verbose \
--filter AME \
--list \
--stats \
--show-rc \
--compression lz4 \
--sparse \
--one-file-system \
--exclude-caches \
--exclude-from /home/ezri/.borgignore \
::'{now}' \
"${backup_dirs[@]}"
backup_exit=$?
echo "Backup complete, pruning repository..."
borg prune \
--verbose \
--list \
--show-rc \
--keep-hourly 48 \
--keep-daily 12 \
--keep-weekly 6 \
--keep-monthly 10
prune_exit=$?
echo "Prune complete, compacting repository..."
borg compact
compact_exit=$?
global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
global_exit=$(( compact_exit > global_exit ? compact_exit : global_exit ))
exit ${global_exit}