#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: backup [-q] [TAG] EOF } help() { cat <<-'EOF' Options: -q disable verbose mode, useful for non-interactive sessions TAG the tag used to create the new backup (default: "default") The repository is expected to have been created with: $ borg init -e repokey-blake2 The following environment variables are expected to be exported: $BORG_PASSCOMMAND $BORG_REPO $BORG_REMOTE_PATH Password-less SSH access is required, usually done via adding ~/.ssh/id_rsa.pub to $SSH_REMOTE:.ssh/authorized_keys. Examples: Run backup manually: $ backup Create backup with comment, and verbose mode active: $ backup -q my-backup EOF } VERBOSE_FLAGS='--verbose --progress' while getopts 'q' flag; do case "$flag" in (q) VERBOSE_FLAGS='' ;; (*) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) TAG="${1:-default}" ARCHIVE="::{hostname}-{user}-{now}-$TAG" borgy $VERBOSE_FLAGS "$ARCHIVE" ~/