summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2023-01-18 10:02:33 +0100
committerHelmut Grohne <helmut@subdivi.de>2023-01-18 10:02:33 +0100
commit2f345516a87baa1fe0d5d7221aec650bb74e9ad6 (patch)
tree3b4647e0cae1bab5d0e3c24fad4decdaa4851fcd
parent383146f8bf4bbd2a76646e2976fbe7dd97ed83d4 (diff)
Update bash completion for borg 2.x
-rw-r--r--debian/patches/bash-completion-update.patch148
-rw-r--r--debian/patches/series1
2 files changed, 149 insertions, 0 deletions
diff --git a/debian/patches/bash-completion-update.patch b/debian/patches/bash-completion-update.patch
new file mode 100644
index 00000000..75d7a249
--- /dev/null
+++ b/debian/patches/bash-completion-update.patch
@@ -0,0 +1,148 @@
+Forwarded: https://github.com/borgbackup/borg/pull/7273
+
+diff --git a/scripts/shell_completions/bash/borg b/scripts/shell_completions/bash/borg
+index 350266a8..255bae35 100644
+--- a/scripts/shell_completions/bash/borg
++++ b/scripts/shell_completions/bash/borg
+@@ -12,12 +12,12 @@ _borg()
+ local cur="${COMP_WORDS[COMP_CWORD]}"
+ local prev="${COMP_WORDS[COMP_CWORD-1]}"
+ local prevprev="${COMP_WORDS[COMP_CWORD-2]}"
+- local common_opts="-h --help --version --critical --error --warning --info -v --verbose --debug --debug-topic -p --progress --log-json --lock-wait --show-version --show-rc --umask --remote-path --remote-ratelimit --consider-part-files --debug-profile --rsh"
++ local common_opts="-h --help --critical --error --warning --info -v --verbose --debug --debug-topic -p --progress --iec --log-json --lock-wait --bypass-lock --show-version --show-rc --umask --remote-path --upload-ratelimit --upload-buffer --consider-part-files --debug-profile --rsh -r --repo"
+ local opts="${common_opts}"
+
+ # Commands
+ if [[ ${COMP_CWORD} == 1 ]] ; then
+- local borg_commands="init create extract check rename list diff delete prune compact info mount umount key serve upgrade recreate export-tar with-lock break-lock config benchmark help"
++ local borg_commands="benchmark break-lock check compact config create delete diff export-tar extract help import-tar info key list mount prune rcompress rcreate rdelete recreate rename rinfo rlist serve transfer umount with-lock"
+ COMPREPLY=( $(compgen -W "${borg_commands}" -- ${cur}) )
+ compopt +o default
+ return 0
+@@ -25,11 +25,11 @@ _borg()
+
+ case "${prev}" in
+ 'key')
+- COMPREPLY=( $(compgen -W "import export change-passphrase" -- ${cur}) )
++ COMPREPLY=( $(compgen -W "change-location change-passphrase export import" -- ${cur}) )
+ return 0
+ ;;
+ 'benchmark')
+- COMPREPLY=( $(compgen -W "crud" -- ${cur}) )
++ COMPREPLY=( $(compgen -W "cpu crud" -- ${cur}) )
+ return 0
+ ;;
+ 'help')
+@@ -37,7 +37,7 @@ _borg()
+ return 0
+ ;;
+ '--encryption' | '-e')
+- local encryption_modes="none keyfile keyfile-blake2 repokey repokey-blake2 authenticated authenticated-blake2"
++ local encryption_modes="authenticated authenticated-blake2 keyfile-aes-ocb keyfile-blake2-aes-ocb keyfile-blake2-chacha20-poly1305 keyfile-chacha20-poly1305 none repokey-aes-ocb repokey-blake2-aes-ocb repokey-blake2-chacha20-poly1305 repokey-chacha20-poly1305"
+ COMPREPLY=( $(compgen -W "${encryption_modes}" -- ${cur}) )
+ return 0
+ ;;
+@@ -67,63 +67,86 @@ _borg()
+ COMPREPLY=( $(compgen -W "${recompress_when}" -- ${cur}) )
+ return 0
+ ;;
++ '--upgrader')
++ local upgraders="From12To20 NoOp"
++ COMPREPLY=( $(compgren -W "${upgraders}" -- ${cur}) )
++ return 0
++ ;;
+ esac
+
+ if [[ ${cur} == -* ]] ; then
+ case "${COMP_LINE}" in
+- *' init '*)
+- local opts="-e --encryption --append-only --storage-quota --make-parent-dirs ${common_opts}"
++ *' rcreate '*)
++ local opts="--other-repo -e --encryption --append-only --storage-quota --make-parent-dirs --copy-crypt-key ${common_opts}"
++ ;;
++ *' rlist '*)
++ local opts="--consider-checkpoints --short --format --json ${common_opts} -a --match-archives --sort-by --first --last"
++ ;;
++ *' rinfo '*)
++ local opts="--json ${common_opts}"
++ ;;
++ *' rcompress '*)
++ local opts="-C --compression -s --stats -c --checkpoint-interval ${common_opts}"
++ ;;
++ *' rdelete '*)
++ local opts="-n --dry-run --list --force --cache-only --keep-security-info ${common_opts}"
+ ;;
+ *' create '*)
+- local opts="-n --dry-run -s --stats --list --filter --json --no-cache-sync --stdin-name --content-from-command -e --exclude --exclude-from --pattern --patterns-from --exclude-caches --exclude-if-present --keep-exclude-tags --exclude-nodump -x --one-file-system --numeric-owner --noatime --noctime --nobirthtime --nobsdflags --noacls --noxattrs --noflags --files-cache --read-special --comment --timestamp -c --checkpoint-interval --chunker-params -C --compression ${common_opts}"
++ local opts="-n --dry-run -s --stats --list --filter --json --no-cache-sync --stdin-name --stdin-user --stdin-group --stdin-mode --content-from-command --paths-from-stdin --paths-from-command --paths-delimiter -e --exclude --exclude-from --pattern --patterns-from --exclude-caches --exclude-if-present --keep-exclude-tags --exclude-nodump -x --one-file-system --numeric-ids --atime --noctime --nobirthtime --noflags --noacls --noxattrs --sparse --files-cache --read-special --comment --timestamp -c --checkpoint-interval --chunker-params -C --compression ${common_opts}"
+ ;;
+ *' extract '*)
+- local opts="--list -n --dry-run --numeric-owner --nobsdflags --noacls --noxattrs --stdout --sparse -e --exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
++ local opts="--list -n --dry-run --numeric-ids --noflags --noacls --noxattrs --stdout --sparse -e --exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
+ ;;
+ *' check '*)
+- local opts="--repository-only --archives-only --verify-data --repair --save-space --max-duration -P --prefix -a --glob-archives --sort-by --first --last ${common_opts}"
++ local opts="--repository-only --archives-only --verify-data --repair --max-duration -a --match-archives --sort-by --first --last ${common_opts}"
+ ;;
+ # rename
+ # no specific options
+ *" list "*)
+- local opts="--short --format --json --json-lines -P --prefix -a --glob-archives --sort-by --first --last -e --exclude --exclude-from --pattern --patterns-from ${common_opts}"
++ local opts="--short --format --json-lines -e --exclude --exclude-from --pattern --patterns-from ${common_opts}"
+ ;;
+ *' diff '*)
+- local opts="--numeric-owner --same-chunker-params --sort --json-lines -e --exclude --exclude-from --pattern --patterns-from ${common_opts}"
++ local opts="--numeric-ids --same-chunker-params --sort --json-lines -e --exclude --exclude-from --pattern --patterns-from ${common_opts}"
+ ;;
+ *' delete '*)
+- local opts="-n --dry-run -s --stats --cache-only --force --save-space -P --prefix -a --glob-archives --sort-by --first --last ${common_opts}"
++ local opts="-n --dry-run --list --consider-checkpoints -s --stats --cache-only --force -c --checkpoint-interval -a --match-archives --sort-by --first --last ${common_opts}"
+ ;;
+ *' prune '*)
+- local opts="-n --dry-run --force -s --stats --list --keep-within --keep-last --keep-secondly --keep-minutely -H --keep-hourly -d --keep-daily -w --keep-weekly -m --keep-monthly -y --keep-yearly --save-space -P --prefix -a --glob-archives ${common_opts}"
++ local opts="-n --dry-run --force -s --stats --list --keep-within --keep-last --keep-secondly --keep-minutely -H --keep-hourly -d --keep-daily -w --keep-weekly -m --keep-monthly -y --keep-yearly -c --checkpoint-interval -a --match-archives ${common_opts}"
+ ;;
+ *' compact '*)
+- local opts="--cleanup-commits ${common_opts}"
++ local opts="--threshold ${common_opts}"
+ ;;
+ *' info '*)
+- local opts="--json -P --prefix -a --glob-archives --sort-by --first --last ${common_opts}"
++ local opts="--json -a --match-archives --sort-by --first --last ${common_opts}"
+ ;;
+ *' mount '*)
+- local opts="-f --foreground -o -P --prefix -a --glob-archives --sort-by --first --last -e --exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
++ local opts="--consider-checkpoints -f --foreground -o --numeric-ids -a --match-archives --sort-by --first --last -e --exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
+ ;;
+ # umount
+ # no specific options
+ # key change-passphrase
+ # no specific options
++ *' change-location '*)
++ local opts="${common_opts} keyfile repokey --keep"
++ ;;
+ *' export '*)
+ local opts="--paper --qr-html ${common_opts}"
+ ;;
+ *' import '*)
+ local opts="--paper ${common_opts}"
+ ;;
+- *' upgrade '*)
+- local opts="-n --dry-run --inplace --force --tam --disable-tam ${common_opts}"
+- ;;
+ *' recreate '*)
+- local opts="--list --filter -n dry-run -s stats -e exclude --exclude-from --pattern --patterns-from --exclude-caches --exclude-if-present --keep-exclude-tags --target -c checkpoint-interval --comment --timestamp --timestamp -C compression --recompress --chunker-params ${common_opts}"
++ local opts="--list --filter -n dry-run -s stats -e exclude --exclude-from --pattern --patterns-from --exclude-caches --exclude-if-present --keep-exclude-tags -a --match-archives --sort-by --first --last --target -c --checkpoint-interval --comment --timestamp -C --compression --recompress --chunker-params ${common_opts}"
+ ;;
+ *' export-tar '*)
+- local opts="--tar-filter --list -e exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
++ local opts="--tar-filter --list --tar-format -e exclude --exclude-from --pattern --patterns-from --strip-components ${common_opts}"
++ ;;
++ *' import-tar '*)
++ local opts="--tar-filter -s --stats --list --filter --json ${common_opts} --comment --timestamp -c --checkpoint-interval --chunker-params -C --compression"
++ ;;
++ *' transfer '*)
++ local opts="-n --dry-run --other-repo --upgrader ${common_opts} -a --match-archives --sort-by --first --last"
+ ;;
+ *' serve '*)
+ local opts="--restrict-to-path --restrict-to-repository --append-only --storage-quota ${common_opts}"
diff --git a/debian/patches/series b/debian/patches/series
index 6fe3c1a9..7ca75d75 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@ privacy/installation_badge.patch
privacy/mathjax.patch
fixdocs.patch
explicit_version.patch
+bash-completion-update.patch