summaryrefslogtreecommitdiff
path: root/backomp
diff options
context:
space:
mode:
Diffstat (limited to 'backomp')
-rwxr-xr-xbackomp13
1 files changed, 13 insertions, 0 deletions
diff --git a/backomp b/backomp
index af44f77..8d90b8c 100755
--- a/backomp
+++ b/backomp
@@ -348,6 +348,18 @@ prune() {
else
if ((DRY)); then
echo "* DRY: prune ${__snaps[__i]}"
+ elif [[ -n "${opts['alt_prune']}" ]]; then
+ echo "* alt-prune ${__snaps[__i]}"
+ bash -c "$(declare -p opts \
+ ); target=$(printf '%q' \
+ "${__snaps[__i]}" \
+ ); ${opts['alt_prune']}" < /dev/null
+ res="$?"
+ if [[ "${res}" -ne 0 ]]; then
+ err 'alt-prune command failed' \
+ "(${res}):" \
+ "${opts['alt_prune']}"
+ fi
elif [[ "${__snaps[__i]}" == rclone://* ]]; then
run rclone purge -- "${__snaps[__i]#*//}"
elif [[ "${__snaps[__i]}" =~ ^([^:/]*):(.*) ]]; then
@@ -419,6 +431,7 @@ declare -A def_opts=(
['rclone_copy_command']='copy'
['rclone_use_copy_dest']=1
['pre_copy']=
+ ['alt_prune']=
)
declare -A opts tainted_opts
reset_opts() {