diff --git a/src/gen_export.sh b/src/gen_export.sh new file mode 100755 index 0000000..14966b6 --- /dev/null +++ b/src/gen_export.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# This script cannot be run on it's own. From the repo root, run ./borg.sh + +# Borg backup runner. An (almost) no-dependency wrapper script for basic Borg backup features. +# Copyright (C) 2022 Twilight Sparkle +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +gen_export() { + if [ "$LIVE" != true ]; then + echo "Note, this command will display your backup passphrase. Pass --live to show" + exit 0 + fi + + STRING="$PROGRAM_NAME + +To manually run borg commands, copy the below export commands and paste them into your shell. +Note the leading space. This prevents the command from being saved on your history in many shells. + + export BORG_KEY_FILE=\"$BORG_KEY_FILE\" + export BORG_PASSPHRASE=\"$BORG_PASSPHRASE\" + export BORG_REPO=\"$BORG_REPO\" +" + + if [ "$BORG_REMOTE" ]; then + STRING+=" export BORG_RSH=\"$BORG_RSH\"\n" + fi + + STRING+="\nborg list --last 2" + + echo -e "$STRING" +} diff --git a/src/help.sh b/src/help.sh index a3716de..1c20e6f 100755 --- a/src/help.sh +++ b/src/help.sh @@ -30,6 +30,7 @@ commands: -d, --diff NAME2 Diff backup NAME2 and backup_name -D, --delete Delete backup(s). backup_name option can be specified. If not, backups matching BORG_BACKUP_PREFIX will be deleted + -e, --export Generate export commands to manually run borg commands -i, --info Display detailed information about the repo or a backup if backup_name is specified -I, --init Initialize a new backup repository -l, --list List all backups. Specify backup_name option to list files in a specific backup diff --git a/src/index.sh b/src/index.sh index 4247d68..b63724e 100755 --- a/src/index.sh +++ b/src/index.sh @@ -46,6 +46,7 @@ source "$SCRIPT_DIR/src/borg_list.sh" source "$SCRIPT_DIR/src/borg_mount.sh" source "$SCRIPT_DIR/src/borg_prune.sh" source "$SCRIPT_DIR/src/borg_unmount.sh" +source "$SCRIPT_DIR/src/gen_export.sh" TIME_STAMP=$(iso_time_stamp) export TIME_STAMP @@ -75,6 +76,8 @@ elif [ "$param_diff" ]; then borg_diff elif [ "$param_info" ]; then borg_info +elif [ "$param_export" ]; then + gen_export elif [ "$param_init" ]; then borg_init elif [ "$param_list" ]; then diff --git a/src/parse_args.sh b/src/parse_args.sh index 71bdd49..f1eaaaf 100755 --- a/src/parse_args.sh +++ b/src/parse_args.sh @@ -36,6 +36,7 @@ while [ $# -gt 0 ]; do -C | --config) export BORG_CONFIG_PATH="$2"; shift; shift ;; -d | --diff) export param_diff="$2"; shift ;; -D | --delete) export param_delete=true; shift ;; + -e | --export) export param_export=true; shift ;; -h | --help) print_help; exit 0 ;; -i | --info) export param_info=true; shift ;; -I | --init) export param_init=true; shift ;;