From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2387 invoked by alias); 12 Jan 2017 23:22:41 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40344 Received: (qmail 13196 invoked from network); 12 Jan 2017 23:22:41 -0000 X-Qmail-Scanner-Diagnostics: from nm1-vm8.bullet.mail.ir2.yahoo.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(212.82.96.79):SA:0(-1.8/5.0):. Processed in 1.607953 secs); 12 Jan 2017 23:22:41 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: okiddle@yahoo.co.uk X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.mail.yahoo.com designates 212.82.96.79 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1484263003; bh=19BKWRWbooLcpYtqNU2oXXlsAnx/9S853eMwDIYOMpY=; h=From:To:Subject:Date:From:Subject; b=KhoGZD4FgnOe7rB5Os/m90nyIboGHdKXKYYyYELO4gTkO7N07u4oIR62UIkRDqqvNj3VXmdFlOfOC8JBWB+9kAVPpl1M7kZZoSA6688RDxa3Ydfo5Ps1VzYSsfnrutedJ9Am90LjX2e8+Kxu2ZXcWfFjbwYIWnRq2y/LeZR9RAtS7HlUudi3JP20vWgIT9cS+1Fu33TVDnOXsd/DFqij4MTspS8iNRX1sN1zrXeUIqshPRR8i7xx46d1QSyhayMatVRHFAntxHUtnu6LcMe6Jv16lBqgUzBm3Mq6Hkgjcz7EHxgciY4tInzXez9ueNzakYxq2SCyNXGC4/ZywzAoag== X-Yahoo-Newman-Id: 376301.57794.bm@smtp104.mail.ir2.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: Y62UHEwVM1lSx31q5R6cMShCIbYAGTzGhXVsWtllqyG.Q4. Z3_TAEsAesjAD0cnXaNNv1oq0eCEhsar4YRmMm.KB9hFxC.2JVtupR6ywzUp YGSOxCK6xHGwVRMOgoycJGgpxTNKXaDlarFYuvUieTSBjUO0yquch9NNJ3lm 9VxWoU4n8rZ9K6PODOPhv9P.YRjNieYjJjTOnpJUTukhqioYDl1xeCoW9fAB zELs.yXO3picb67vc_Be1DK1Hh8UuJFyh0_ETVcUd_BET7hn4q0tMRkyFdet GGUCEUhZXsc0.uh1o_A.wkC43KB_8xR91zvQE74oOxN69jee0kKdwdrvirNZ F75zN7eam995j.ygTYa3Oj5w6n5h4P0s_ytzxGDDmMqJE68FZbSmJLkiFknT mE5Ng.hs7EGWRlJC64C4L3rZXgTeqg54A4nqtCaIjjRDJFo4DsP8PkWRwJWh RZxUf9_780s8mGZIRsz_duk3KJ7QqNzEO..xXN6fHjwyBATUCrbhHaU.POha LRzdWMA9KLgsTXX.gdXAwX.GkREnvfpb64.2Fw1Ro X-Yahoo-SMTP: opAkk_CswBAce_kJ3nIPlH80cJI- From: Oliver Kiddle To: Zsh workers Subject: PATCH: new lsblk completion MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <23883.1484262954.1@hydra.kiddle.eu> Date: Fri, 13 Jan 2017 00:15:54 +0100 Message-ID: <23884.1484262954@hydra.kiddle.eu> This makes use of the new groups to keep the exclusion lists shorter than they might otherwise be. lsblk is a util-linux tool for listing block devices. Oliver diff --git a/Completion/Linux/Command/_lsblk b/Completion/Linux/Command/_lsblk new file mode 100644 index 000000000..e1863cd06 --- /dev/null +++ b/Completion/Linux/Command/_lsblk @@ -0,0 +1,57 @@ +#compdef lsblk + +local sep ret=1 +local -a values dedup suf=( -qS , ) +local curcontext="$curcontext" state line expl +typeset -A opt_args + +_arguments -C -s -S \ + '(H -a --all)'{-a,--all}'[print all devices]' \ + '(H -b --bytes)'{-b,--bytes}'[print size in bytes rather than in human readable format]' \ + '(H -d --nodeps)'{-d,--nodeps}"[don't print slaves or holders]" \ + '(H -I --include)*'{-e,--exclude}'[exclude devices by major number]:major device number:->majorlist' \ + '(H -e --exclude)*'{-I+,--include=}'[show only devices with specified major numbers]:major device number:->majorlist' \ + '(H -n --noheadings)'{-n,--noheadings}"[don't print headings]" \ + '(H -p --paths)'{-p,--paths}'[print complete device path]' \ + '(H -s --inverse)'{-s,--inverse}'[reverse dependency order]' \ + '(H -x --sort)'{-x+,--sort=}'[sort output by specified column]:column:->columns' \ + '*:device:_files -g "*(-%b)" -P / -W /' \ + + fields \ + '(H -D --discard -o --output -O --output-all)'{-D,--discard}'[output discard capabilities]' \ + '(H -f --fs -o --output -O --output-all)'{-f,--fs}'[output info about filesystems]' \ + '(H -m --perms -o --output -O --output-all)'{-m,--perms}'[output info about permissions]' \ + '(H -S --scsi -o --output -O --output-all)'{-S,--scsi}'[output info about SCSI devices]' \ + '(H -t --topology -o --output -O --output-all)'{-t,--topology}'[output info about topology]' \ + '(H fields)'{-o+,--output=}'[specify output columns]:output column:->columnlist' \ + '(H fields)'{-O,--output-all}'[output all columns]' \ + + '(format)' \ + '(H)'{-i,--ascii}'[output ascii characters only]' \ + '(H)'{-J,--json}'[use JSON output format]' \ + '(H)'{-l,--list}'[use list format output]' \ + '(H)'{-P,--pairs}'[use key="value" output format]' \ + '(H)'{-r,--raw}'[use raw output format]' \ + + 'H' \ + '(* -)'{-h,--help}'[display help information]' \ + '(* -)'{-V,--version}'[display version information]' && ret=0 + +case $state in + *list) + dedup=( ${(Ms.,.)PREFIX##*,} ${(Ms.,.)SUFFIX%%,*} ) + compset -S ',*' && suf=() + compset -P '*,' + ;| + column*) + values=( + ${${${${(f)"$(_call_program columns lsblk -h)"}[(r)Available*,-3]## #}[2,-1]//:/\\:}/ /:} + ) + _describe -t fields column values -M 'm:{a-z}={A-Z}' $suf -F dedup && ret=0 + ;; + major*) + zstyle -s ":completion:${curcontext}:" list-separator sep || sep=-- + values=( ${${${(f)"$(