From 2ac1523e54307fa7207b094e513e3167d38c92fa Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Sun, 29 Dec 2024 15:33:29 +0100 Subject: [PATCH] add completion for btrbk (#10752) * add completion for btrbk completions for btrbk https://github.com/digint/btrbk/ * change indent + spaces --- share/completions/btrbk.fish | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 share/completions/btrbk.fish diff --git a/share/completions/btrbk.fish b/share/completions/btrbk.fish new file mode 100644 index 000000000..d27672b64 --- /dev/null +++ b/share/completions/btrbk.fish @@ -0,0 +1,62 @@ +# Filter Completion +function __fish_btrbk_complete_filter + btrbk list config --format col:h:snapshot_name,source_subvolume,target_url | string replace -r '([^ ]+)\s+([^ ]+)\s+([^ ]*)' '$1\t$2 -> $3' +end + +# options with arguments +complete -c btrbk -l format -x -d 'Change output format' -a "table long raw" +complete -c btrbk -l loglevel -s l -x -d 'Set logging level' -a "error warn info debug trace" +complete -c btrbk -l exclude -x -d 'Exclude configured sections' -a "(__fish_btrbk_complete_filter)" +complete -c btrbk -l override -x -d 'Globally override a configuration option' + +# options with file completion +complete -c btrbk -l config -r -s c -d 'Specify configuration file' +complete -c btrbk -l lockfile -r -d 'Create and check lockfile' + +# options without arguments +complete -c btrbk -l help -s h -d 'Display this help message' +complete -c btrbk -l version -d 'Display version information' +complete -c btrbk -l dry-run -s n -d 'Perform a trial run with no changes made' +complete -c btrbk -l preserve -s p -d 'Preserve all (do not delete anything)' +complete -c btrbk -l preserve-snapshots -d 'Preserve snapshots (do not delete snapshots)' +complete -c btrbk -l preserve-backups -d 'Preserve backups (do not delete backups)' +complete -c btrbk -l wipe -d 'Delete all but latest snapshots' +complete -c btrbk -l verbose -s v -d 'Be more verbose (increase logging level)' +complete -c btrbk -l quiet -s q -d 'Be quiet (do not print backup summary)' +complete -c btrbk -l table -s t -d 'Change output to table format' +complete -c btrbk -l long -s L -d 'Change output to long format' +complete -c btrbk -l print-schedule -s S -d 'Print scheduler details (for the "run" command)' +complete -c btrbk -l progress -d 'Show progress bar on send-receive operation' + +# uncommon options from manpage +complete -c btrbk -l single-column -s 1 -d 'Print output as a single column' +complete -c btrbk -l pretty -d 'Print pretty table output with lowercase and underlined column headings' +complete -c btrbk -l raw -d 'Create raw targets for archive command' + +# subcommands +complete -c btrbk -f -n __fish_use_subcommand -a run -d 'Run snapshot and backup operations' +complete -c btrbk -f -n __fish_use_subcommand -a dryrun -d 'Show what would be executed without running btrfs commands' +complete -c btrbk -f -n __fish_use_subcommand -a snapshot -d 'Run snapshot operations only' +complete -c btrbk -f -n __fish_use_subcommand -a resume -d 'Run backup operations and delete snapshots' +complete -c btrbk -f -n __fish_use_subcommand -a prune -d 'Only delete snapshots and backups' +complete -c btrbk -f -n __fish_use_subcommand -a archive -d 'Recursively copy all subvolumes (src -> dst)' +complete -c btrbk -f -n __fish_use_subcommand -a clean -d 'Delete incomplete (garbled) backups' +complete -c btrbk -f -n __fish_use_subcommand -a stats -d 'Print snapshot/backup statistics' +complete -c btrbk -f -n __fish_use_subcommand -a usage -d 'Print filesystem usage' +complete -c btrbk -f -n __fish_use_subcommand -a ls -d 'List all btrfs subvolumes below a given path' +complete -c btrbk -f -n __fish_use_subcommand -a origin -d 'Print origin information for a subvolume' +complete -c btrbk -f -n __fish_use_subcommand -a diff -d 'List file changes between related subvolumes' +complete -c btrbk -f -n __fish_use_subcommand -a extents -d 'Calculate accurate disk space usage for a path' +complete -c btrbk -f -n __fish_use_subcommand -a list -d 'List snapshots and backups' + +# subsubcommands for "list" +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a all -d 'List all snapshots and backups' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a snapshots -d 'List snapshots only' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a backups -d 'List backups and correlated snapshots' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a latest -d 'List most recent snapshots and backups' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a config -d 'List configured source/snapshot/target relations' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a source -d 'List configured source/snapshot relations' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a volume -d 'List configured volume sections' +complete -c btrbk -n '__fish_seen_subcommand_from list' -f -a target -d 'List configured targets' + +complete -c btrbk -n '__fish_seen_subcommand_from run dryrun snapshot resume prune clean' -x -a '(__fish_btrbk_complete_filter)'