From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11785 invoked by alias); 10 Nov 2009 12:11:17 -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: 27379 Received: (qmail 6152 invoked from network); 10 Nov 2009 12:11:14 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00, UNPARSEABLE_RELAY autolearn=ham version=3.2.5 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.218.210 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:subject :message-id:mime-version:content-type:content-disposition:user-agent; bh=Jh8al2dQiGRM0QQFn6NCTH51AZQboLJIeOckVfGsCQc=; b=MbpkEe1IlL8nhti2wFx2b3Sg6ijtxKaNUBGy5Y/YBHJAIKMY4DusfzKdE+9qaoEJZF 0Xum0WlNfedbaFUYdmA3ljF8JTo8bHfrBcV3BodbqNHAmP58i2R00dCJY/rKPzjltfTI Y2h5lfbX7mdbbxDw0bOxj7A7v53sV3z7ehOOw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=HTJ9HkNcCwRDP05StX9/PrSDVWfzAlaiDM27R+FAM5IGxNgNJPQT7uupKImPCHguy3 RqTpDmRMsnyvaoqfOYiJ7Xxv/v/KkFnnNutTwplfVNEsmIKJ/HM6OT9d7fO3UN7Fxv7F +bI9F6i8KloLXN3F/rqfYuq16cYiQ4PQ5kNuc= Date: Tue, 10 Nov 2009 13:03:29 +0100 From: Baptiste Daroussin To: zsh-workers@zsh.org Subject: New Completion for FreeBSD's portmaster Message-ID: <20091110120329.GB54310@wicklow.lan> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="hQiwHBbRI9kgIhsi" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) --hQiwHBbRI9kgIhsi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi here comes a new completion for FreeBSD's portmaster It goes to Completion/BSD/Command repository regards, Bapt --hQiwHBbRI9kgIhsi Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=_portmaster #compdef portmaster _portmaster_pkgs() { compadd "$@" - ${PKG_DBDIR:-/var/db/pkg}/*(/:t) } _portmaster_ports() { local ret=1 _fbsd_ports _fbsd_cat _fbsd_cat=(${PORTSDIR:-/usr/ports}/[a-z]*(/:t)) if [[ $PREFIX != */* ]] ; then _wanted cat_packages expl 'category/ports' compadd -S '/' $_fbsd_cat else compset -P '*/' _fbsd_ports=(${PORTSDIR:-/usr/ports}/$IPREFIX/*(/:t)) _wanted cat_packages expl 'category/ports' compadd $_fbsd_ports fi return ret } _portmaster_pkgs_and_ports() { local ret=1 _portmaster_pkgs && ret=0 _portmaster_ports && ret=0 return ret } _portmaster() { local specific_args common_args expunge_args standalone_args kid standalone_args=( '--clean-distfiles[delete distfiles not associated with an installed ports: interactive]' '--clean-distfiles-all[delete distfiles not associated with an installed ports]' '--check-depends[cross-check and update dependency information for all ports]' '--check-port-dbdir[check for stale entries in /var/db/ports]' '--list-origins[list directories from /usr/ports for root and leaf ports]' '-l[list all installed ports by category]' '-L[list all installed ports by category, and search for updates]' {'(-help)-h','(-h)--help'}'[display help message]:' '--version[display the version only]:' ) specific_args=( '(-s -r -o)-e[expunge port using pkg_delete, and remove all distfiles]:name of port:_portmaster_pkgs' '(-e -r -o)-s[clean out stale ports that used to be depended on]' '(-e -s -o)-r[rebuild the specified port, and all ports that depend on it]:name/glob of port:_portmaster_pkgs' '(-e -s -r)-o[replace the installed port with a port from a different origin]:new port dir:_portmaster_ports' ) expunge_args=( '(-b)-B[prevents creation of the backup package for the installed port]' '(-d)-D[no cleaning of distfiles]' '(-D)-d[always clean distfiles]' ) common_args=( "(-G)--force-config[run 'make config' for all ports]" "-C[prevents 'make clean' from being run before building]" '-H[hide details of the port build and install in a log file]' "-K[prevents 'make clean' from being run after building]" '(-B)-b[create and keep a backup package of an installed port]' '-g[create a package of the new port]' '-n[run through configure, but do not make or install any ports]' '-t[recurse dependencies thoroughly, using all-depends-list]' '-v[verbose output]' '-w[save old shared libraries before deinstall]' '-u[unattended mode]' '(-i)-f[always rebuild ports]' '(-f)-i[interactive update mode]' '-m[any arguments to supply to make]:arguments for make:' '-x[avoid building or updating ports that match this pattern]:glob pattern to exclude from building:' '-p[specify the full path to a port directory]:a port directory:' '--show-work[show what dependent ports are, and are not installed]' '-R[restart an update, skipping ports already up to date]' '-a[check all ports, update as necessary]' '-F[fetch distfiles only]' $expunge_args $specific_args ) if (( CURRENT == 2 ));then _arguments -s \ $standalone_args \ $common_args \ '*:Packages and Ports:_portmaster_pkgs_and_ports' else case "$words[2]" in --clean-distfiles|--clean-distfiles-all|--check-depends|--check-port-dbdir|--version|-help|-h) return 0 ;; *) if (( $words[(I)-(e|r)] ));then _arguments -s \ '*:Packages:_portmaster_pkgs' elif (( kid=$words[(I)-o] ));then if (( CURRENT == $kid + 1 ));then _arguments -s \ '*:Ports replacing:_portmaster_ports' elif (( CURRENT == $kid + 2 )); then _arguments -s \ '*:Package to replace:_portmaster_pkgs' else return 0 fi elif (( $words[(I)-s] ));then return 0 else _arguments -s \ $common_args \ '*:Packages and Ports:_portmaster_pkgs_and_ports' fi ;; esac fi } _portmaster "$@" --hQiwHBbRI9kgIhsi--