From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 55d74297 for ; Thu, 26 Sep 2019 23:12:58 +0000 (UTC) Received: (qmail 16990 invoked by alias); 26 Sep 2019 23:12:51 -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: List-Unsubscribe: X-Seq: 44782 Received: (qmail 1163 invoked by uid 1010); 26 Sep 2019 23:12:51 -0000 X-Qmail-Scanner-Diagnostics: from park01.gkg.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25580. spamassassin: 3.4.2. Clear:RC:0(205.235.26.22):SA:0(-1.6/5.0):. Processed in 1.409031 secs); 26 Sep 2019 23:12:51 -0000 X-Envelope-From: SRS0=JSHJ=XV=yahoo.co.uk=okiddle@bounces.park01.gkg.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at bounces.park01.gkg.net designates 205.235.26.22 as permitted sender) X-Virus-Scanned: by amavisd-new at gkg.net Authentication-Results: amavisd4.gkg.net (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.co.uk X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1569539529; bh=asKZlWvcCWgZM0gxntjd1RWtlTYuOk8NsmFNUP8Kq0s=; h=From:To:Subject:Date:From:Subject; b=qqad9T/bBZQrffKgU684g7Cb55gYWVEQku3968OeCRapb/R2GvV1vggv1rb2E7TDfjjrjzLXj2tr4iJBQKL9vwbOeypHSshU2esGSM/uQfKUz5GBtQmzU0MLacULCGruZ9Hu6ho3rBg53Gt8C3b3gx1i+B3s98gRhpunVzNTFWGXeoVKcSHcVxutegvKZ11JAMpVp5Xs9i2RDwb9ouTu+tqQGD79CdqoU1WP9CulJ45yafDD7Hggo7w5XRoSX64Sqr+OaDoc775sByfuj+XuF5wELfTYiDUId3CxHj7SMTSw7FuBmjxRpmYYEfnKIqqPivQg26XYAE5EbYfhDnroeA== X-YMail-OSG: qli8QTkVM1nxhKvquel2yXd_LHbKiiX1GA9qu.P8IfGcSP4tZ4Tgr.ezH37fXa8 u24spDrObinOsQKkRCBlrfDGyh.rlxLN2IbwV0xHi4vY7Q7HJl4ToN0uvclaagQnzQipd76Q6V3Q gF.gwAJEqFMvTQJJXQ.O1s6z13rxbPOGGJ1sdIR9DgQufHjSKUQfm11jlzAIm4FQ1R2JZKvSEZai WEa4Z6xi0985dYEUHa6obBkX0XBuBpjUSKF_RRDJ33jFmjolxRubI8Thv2RXVoAlJJkn9jTZkQ.l Qim0zBMnPEnpZNuEvQ9Y_1rfyfG8HK1TcOFLcSXliNYiO15ree8czEsGAWRP2JGRRnWMHqRVUeSt uMe8aZmmeen3.xzluetgGUTEsBkJvvxxie0lbLvJ7PMBFCT1LAO7NeKC.PQMwDw92CjsglFn2Rrq 9ENvLmKt0QU3Yr5LsLBir.V78KaE.4GDhMrCheehiBDXHzvKs9pNOh0MKmKLgGmsPypXltlwS3kZ zzAiUYMMDeVwxMzvrEOJK89J0V_SRFEQ7SqpSyYf4LK6TKGzkJ3dkBu24VvBXd6bJ_3yJ2MEMti0 bfHs4oDFK9fu4bEOjlDzjQ4eflu0YnUAr8JmxqVJmy6Q8uaPBkgJTYsUO.TY2Zma2YsYU.RPCjuH OVi2oX6CvYhdnCOzS8QEkMKTtukQD7RL4zT4FeKpt.TGKobCxgU6O1r6F4JbTTkyzhet.pHRgE.4 W9zdZpK5BIIBZoSjFMzEerCFTSb7D9plwY_olJcpjZrmhm2CytIXzkMZzYdmpknnWGC3LBU1a6O3 WxW2bnK2Tzm5xP8c9_JZj_tZeRFRQDyQUx6gDbOROTAn1zjcikhbzmTsbAXuvryz40vJv4COYCOD xeXReF_5olXZRpRy8PPsNqcDj8bBBoFAWSkm4d9yNJ4KWBFNETICI4UvPma9cAg.iILDksDCbW5y V4S8uwacW6tGICrA1aiuFucoqY.wEvB0XG6gmbndLkpdWYkUSDMLWsL_ri4F0L.HURKAgL_ucfVi K4SQpsUJOKbqCE1d7gaoMHSSxz9E8efJRKbuPBHgIwv7OEOaMDh_zCdISUhi08tQ62N3G1dovKTS V2emN4NhcEw3Uu6SKbnSkVEB4iUdCgX1OjihN0JzXOV96FbbhqY.9cFzz6.QR0mPCDgrPnxyrFll qR4gVOOEIyf6JS7UqmqfPUE1gKVaM1TpG_F8X3kYnUnQG1CjzJSNJl_N6OetREFHYhg6TRUGS0AV B6bplfTj.RQ7Z.koPnE8- From: Oliver Kiddle To: Zsh workers Subject: PATCH: completions for pkgin and avahi MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <84445.1569538924.1@hydra> Date: Fri, 27 Sep 2019 01:02:04 +0200 Message-ID: <84446-1569538924.658710@ToDK.9oyR.panz> These are a couple of completions that I tried submitting to their respective upstreams some time ago but which got ignored. Specifically, pkgin and avahi. Oliver diff --git a/Completion/BSD/Command/_pkgin b/Completion/BSD/Command/_pkgin new file mode 100644 index 000000000..5cb12baea --- /dev/null +++ b/Completion/BSD/Command/_pkgin @@ -0,0 +1,79 @@ +#compdef pkgin + +local curcontext="$curcontext" pkgin=$words[1] cmd ret=1 +local -a state state_descr line expl cmds short pkgs +local -A opt_args + +_arguments -s -S -C \ + '-c+[enable chrooting pkgin in the given repository]:chroot path:_directories' \ + '-d[download only]' \ + '-f[force database update]' \ + '-F[force package reinstall]' \ + '(- 1 *)-h[display usage information]' \ + '-l+[only include the packages with the specified status flags]:limit chars:(( + \=\:installed\ version\ is\ current + \<\:installed\ version\ is\ older + \>\:installed\ version\ is\ newer + ))' \ + '(-y)-n[assume "no" as default answer and print results of actions to be taken line per line]' \ + '-p[display results in a parsable format]' \ + '-P[display packages versions instead of globs (sd, sfd, srd)]' \ + '-t+[log package browsing (dependencies and impact) to specified log file]:log file:_files' \ + '(- 1 *)-v[display version information]' \ + '-V[be verbose when (un)installing]' \ + '(-n)-y[assume "yes" as default answer, except for autoremove]' \ + '1:command:->subcommands' \ + '*:: :->restargs' && ret=0 + +if [[ -n $state ]]; then + cmds=( ${${${(f)"$(_call_program commands $pkgin -h 2>&1)"}[3,-1]/ - (#b)(?)/:$match:l}%.} ) + short=( ${${cmds#*\(}/ #\)/} ) + cmds=( ${cmds// #\(*\)/} ) + if [[ $state = subcommands && ! -prefix - ]]; then + _describe -t commands "command" short -- cmds -M 'r:|-=* r:|=*' && ret=0 + return ret + fi + + cmd=${short[(I)${words[1]}:*]} + if (( cmd )); then + cmd=${cmds[cmd]%%:*} + else + cmd=$words[1] + fi + curcontext="${curcontext%:*}-$cmd" + case $cmd in + avail|autoremove|clean|export|(full-|)upgrade|show(|-no)-keep|update) + _nothing + ;; + import) + _wanted files expl file _files && ret=0 + ;; + install|pkg-(content|descr|build-defs)|provides|requires|show(|-full|-rev)-deps|show-pkg-category) + _wanted packages expl package compadd - \ + ${${(f)"$(_call_program packages $pkgin avail)"}%%-[^- ]# *} && ret=0 + ;; + keep) + _wanted packages expl package compadd - \ + ${${(f)"$(_call_program packages $pkgin show-no-keep)"}%%-[^- ]# *} && ret=0 + ;; + remove) + _wanted packages expl package compadd - \ + ${${(f)"$(_call_program packages $pkgin list)"}%%-[^- ]# *} && ret=0 + ;; + search) + _message -e patterns pattern + ;; + show-category) + _wanted -x categories expl category compadd - /usr/pkgsrc/*~*/CVS(N/:t) && ret=0 + ;; + unkeep) + _wanted packages expl package compadd - \ + ${${(f)"$(_call_program packages $pkgin show-keep)"}%%-[^- ]# *} && ret=0 + ;; + *) + _default && ret=0 + ;; + esac +fi + +return ret diff --git a/Completion/Unix/Command/_avahi b/Completion/Unix/Command/_avahi new file mode 100644 index 000000000..562ec3647 --- /dev/null +++ b/Completion/Unix/Command/_avahi @@ -0,0 +1,52 @@ +#compdef avahi-browse avahi-browse-domains avahi-resolve avahi-resolve-address avahi-resolve-host-name + +local curcontext="$curcontext" pri ret=1 +local -A opt_args +local -a state line args serv desc disp + +args=( + '(- 1)'{-h,--help}'[display usage information]' + '(- 1)'{-V,--version}'[display version information]' + '(-v --verbose)'{-v,--verbose}'[enable verbose mode]' +) + +case $service in + *-browse*) + serv=( ${(f)"$(_call_program service-types avahi-browse -bk)"} ) + desc=( ${(f)"$(_call_program service-types-description avahi-browse -b)"} ) + (( $#desc )) && print -v disp -f '%s:%s' ${serv:^desc} + + _arguments -s -S -C $args \ + '(-D --browse-domains -a --all -b --dump-db)'{-D,--browse-domains}'[browse for browsing domains instead of services]' \ + '(-D --browse-domains -a --all -b --dump-db)'{-a,--all}'[show all services, regardless of the type]' \ + '(-d --domain)'{-d+,--domain=}'[specify domain to browse in]:domain' \ + '(-t --terminate)'{-t,--terminate}'[terminate after dumping a more or less complete list]' \ + '(-c --cache)'{-c,--cache}'[terminate after dumping all entries from the cache]' \ + '(-l --ignore-local)'{-l,--ignore-local}'[ignore local services]' \ + '(-r --resolve)'{-r,--resolve}'[resolve services found]' \ + '(-f --no-fail)'{-f,--no-fail}"[don't fail if the daemon is not available]" \ + '(-p --parsable)'{-p,--parsable}'[output in parsable format]' \ + '(-k --no-db-lookup)'{-k,--no-db-lookup}"[don't lookup service types]" \ + '(-D --browse-domains -a --all -b --dump-db)'{-b,--dump-db}'[dump service type database]' \ + '1: :->service-types' && ret=0 + + [[ -n $state ]] && _describe -t services "service type" disp && ret=0 + ;; + *-resolve*) + if (( ${words[(I)(-n|--name)]} )) || [[ $service = *-host-name ]]; then + args=( '*:host:_hosts' ) + pri=1 + fi + if (( ${words[(I)(-a|--address)]} )) || [[ $service = *-address && -n $pri ]]; then + args=( '*: :_guard "^-*" address' ) + fi + + _arguments -s -S $args \ + '(-a --address -n --name -h --help -V --version)'{-a,--address}'[resolve address]' \ + '(-a --address -n --name -h --help -V --version)'{-n,--name}'[resolve host name]' \ + '(-4)-6[lookup IPv6 address]' \ + '(-6)-4[lookup IPv4 address]' && ret=0 + ;; +esac + +return ret