#compdef layman # ------------------------------------------------------------------------------ # Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of the zsh-users nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ------------------------------------------------------------------------------ # Description # ----------- # # Completion script for LayMan (Gentoo overLAYs (repositories) MANager). # # ------------------------------------------------------------------------------ # Authors # ------- # # * Vadim A. Misbakh-Soloviev # * Bapt # * kaworu # * David Durrleman # * oberyno # * Mamoru Komachi # # ------------------------------------------------------------------------------ # -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*- # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------ # # local arguments actions_args actions global_opts add_actions _layman_remote_overlays() { local layman_list_overlays layman_list_overlays=(${(S)${${(f)"$(layman -k -N -L 2>/dev/null)"}//\[*}#\* }) compadd "$@" ${(kv)=layman_list_overlays} "ALL" } _layman_local_overlays() { local layman_list_overlays layman_list_overlays=(${(S)${${(f)"$(layman -N -l)"}//\[*}#\* }) compadd "$@" ${(kv)=layman_list_overlays} "ALL" } actions=( --delete -d --sync -s --info -i --sync-all -S --list -L --list-local -l --fetch -f ) global_opts=( '(--config -c)'{-c,--config}'[Select an alternative configuration file]:configuration file:_files' '(--overlays -o)'{-o,--overlays}'[Specifies the location of additional overlay lists]:overlay url:_urls' '(--nofetch -n)'{-n,--nofetch}'[Prevents from automatically fetching the remote lists of overlays]' '(--nocheck -k)'{-k,--nocheck}'[Prevents from checking the remote lists of overlays for complete overlay definitions]' '(--quiet -q)'{-q,--quiet}'[Makes layman completely quiet]' '(--verbose -v)'{-v,--verbose}'[Verbose output]' '(--quietness -Q)'{-Q,--quietness}'[Makes layman less verbose]:level:({0..4})' '(--nocolor -N)'{-N,--nocolor}'[Remove color codes from the output]' ) add_actions=( -p --priority --add -a ) actions_args=( "($actions --add -a)"{--add,-a}'[Add the given overlay to your installed overlays]:overlay:_layman_remote_overlays' "($actions --priority -p)"{--priority,-p}'[It will modify the priority of the added overlay]:priority:({0..100})' "($actions $add_actions)"{--delete,-d}'[Delete the given overlay from your installed overlays]:overlay:_layman_local_overlays' "($actions $add_actions)"{--sync,-s}'[Update the specified overlay]:overlat:_layman_local_overlays' "($actions $add_actions)"{--info,-i}'[Display all available information about the specified overlay]:overlay:_layman_remote_overlays' "($actions $add_actions)"{--sync-all,-S}'[Update all overlays]' "($actions $add_actions)"{--list,-L}'[List the contents of the remote list]' "($actions $add_actions)"{--list-local,-l}'[List the locally installed overlays]' "($actions $add_actions)"{--fetch,-f}'[Fetches the remote list of overlays]' ) _arguments $global_opts[@] $actions_args[@]