qusal/salt/dom0/files/bin/qvm-backup-find-last
Ben Grande bdd4c789c1
fix: avoid echo usage
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.
2024-08-06 18:15:24 +02:00

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}"