From 9ddba0116fea910505655467cc484fa9845ccfe1 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Sun, 20 May 2018 01:22:16 -0500 Subject: [PATCH] Add completions for `unzip` --- CHANGELOG.md | 1 + share/completions/unzip.fish | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 share/completions/unzip.fish diff --git a/CHANGELOG.md b/CHANGELOG.md index 73f3f526d..cab525635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,7 @@ This section is for changes merged to the `major` branch that are not also merge - `optipng` - `port` - `ttx` + - `unzip` - Improved completions for - `brew` - `diskutil` diff --git a/share/completions/unzip.fish b/share/completions/unzip.fish new file mode 100644 index 000000000..4baf381c8 --- /dev/null +++ b/share/completions/unzip.fish @@ -0,0 +1,31 @@ +complete -c unzip -s p -d "extract files to pipe, no messages" +complete -c unzip -s f -d "freshen existing files, create none" +complete -c unzip -s u -d "update files, create if necessary" +complete -c unzip -s v -d "list verbosely/show version info" +complete -c unzip -s x -d "exclude files that follow (in xlist)" +complete -c unzip -s l -d "list files (short format)" +complete -c unzip -s t -d "test compressed archive datamodifiers:" +complete -c unzip -s z -d "display archive comment only" +complete -c unzip -s T -d "timestamp archive to latest" +complete -c unzip -s d -d "extract files into exdir" +complete -c unzip -s n -d "never overwrite existing files" +complete -c unzip -s o -d "overwrite files WITHOUT prompting" +complete -c unzip -s q -d "quiet mode" +complete -c unzip -o qq -d "quieter mode" +complete -c unzip -s a -d "auto-convert any text files" +complete -c unzip -s U -d "use escapes for all non-ASCII Unicode" +complete -c unzip -o UU -d "ignore any Unicode fields" +complete -c unzip -s j -d "junk paths (do not make directories)" +complete -c unzip -s aa -d "treat ALL files as text" +complete -c unzip -s C -d "match filenames case-insensitively" +complete -c unzip -s L -d "make (some) names lowercase" +complete -c unzip -s X -d "restore UID/GID info" +complete -c unzip -s V -d "retain VMS version numbers" +complete -c unzip -s K -d "keep setuid/setgid/tacky permissions" +complete -c unzip -s M -d "pipe through `more` pager" + +# the first non-switch argument should be the zipfile +complete -c unzip -n '__fish_is_first_token' -xa '(__fish_complete_suffix .zip)' +# files thereafter are either files to include or exclude from the operation +set -l zipfile +complete -c unzip -n 'not __fish_is_first_token' -xa '(unzip -l (eval set zipfile (__fish_first_token); echo $zipfile) | string replace -r --filter ".*:\S+\s+(.*)" "\$1")'