#!/bin/sh -e # Simple backup with borg if test $# -eq 0 then echo "To backup: bog [prefix_] folder" borg list --format "{barchive:40} Created {time}{NL}" exit $? fi while test $# -gt 0; do case "$1" in (mount) moul backup >/dev/null 2>&1 cd /mnt/backup mkdir -p backups borg mount borg backups cd backups "$SHELL" cd .. borg umount backups rm -d backups exit 0;; (tree) borg list --short $(case $2 in (*::*) echo "$2";; (*) echo "::$2";; esac) | tree --fromfile . | less -F exit $?;; (-n) run=arg-test; shift;; (*_) prefix=$1; shift;; (*) break;; esac done name="$(echo "$1" | sed -e 's|/$||' \ -e 's|20\([0-9]\{2\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)|\1\2\3|' \ -e 's|\([0-9]\{6\}\)[-_]\(.*\)|\2_\1|' \ -e 's|\(\w\+Drive\)|cloud_\L\1|i')" test $# -gt 1 && shift ${run:-borg} create --exclude-caches --progress --stats "::$prefix$name" "$@"