Files
dotfiles/bin/backup-restic

53 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# DRY="-n "
DRY=
CONFIG_ROOT="$HOME/.config/restic"
usage() {
echo "$0 <backup>"
echo
echo "Known profiles:"
echo
ls -1 $CONFIG_ROOT
exit 1
}
if [ ! -d $CONFIG_ROOT ] ; then
echo "$CONFIG_ROOT hasn't been created; you need to create a profile for the backup you want to run."
exit 1
fi
if [ $# -lt 1 ] ; then
usage
fi
PROFILE=$1
shift
PROFILE_ROOT=$CONFIG_ROOT/$PROFILE
if [ ! -d "$PROFILE_ROOT" ] ; then
echo "Profile '$PROFILE' not found in $CONFIG_ROOT"
exit 2
fi
export RESTIC_PASSWORD_COMMAND="pass restic/$PROFILE/$HOSTNAME"
CMDLINE="restic backup --one-file-system --exclude-caches $DRY"
EXCLUDE_FILE=$PROFILE_ROOT/excludes.txt
if [ -r $EXCLUDE_FILE ] ; then
CMDLINE="$CMDLINE --exclude-file $EXCLUDE_FILE"
fi
REPO=$PROFILE_ROOT/repo.txt
SOURCES=$PROFILE_ROOT/sources.txt
CMDLINE="$CMDLINE -r $(cat $REPO) $(cat $SOURCES) $@"
# echo "Backup:"
# echo -e "\tPassword command: $RESTIC_PASSWORD_COMMAND"
# echo -e "\tCommand: $CMDLINE"
$CMDLINE