mirror of
https://github.com/ben-grande/qusal.git
synced 2025-02-12 21:21:24 -05:00
bdd4c789c1
Echo can interpret operand as an option and checking every variable to be echoed is troublesome while with printf, if the format specifier is present before the operand, printing as string can be enforced.
46 lines
1.0 KiB
Bash
Executable File
46 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
set -eu
|
|
|
|
list_backups(){
|
|
## Hide stderr to hide remote login connection messages (banners etc).
|
|
# shellcheck disable=SC2086
|
|
qvm-run --filter-escape-chars --no-color-output --no-color-stderr \
|
|
--pass-io "${qube}" -- "${cmd} ${find_cmd} 2>/dev/null"
|
|
}
|
|
|
|
list_last_backup(){
|
|
list_backups | tail -1
|
|
}
|
|
|
|
usage(){
|
|
printf '%s\n' "Usage: ${0##*/} QUBE DIR [CMD]
|
|
example: ${0##*/} usb-qube /local/dir/backups
|
|
example: ${0##*/} ssh-qube /remote/dir/backups 'ssh user@server'
|
|
note: when using a remote login command (ssh), DIR is the remote directory
|
|
note: the directory specified must be the parent of the saved backups"
|
|
exit 1
|
|
}
|
|
|
|
if test -z "${2-}"; then
|
|
usage
|
|
fi
|
|
|
|
qube="${1}"
|
|
path="${2}"
|
|
cmd="${3-}"
|
|
|
|
find_pattern="qubes-backup-*"
|
|
find_cmd="find \"${path}\" -maxdepth 1 -type f -name \"${find_pattern}\""
|
|
|
|
last_backup="$(list_last_backup)"
|
|
if test -z "${last_backup}"; then
|
|
exit 1
|
|
fi
|
|
|
|
printf '%s\n' "${last_backup}"
|