From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5558 invoked from network); 2 Jan 2003 14:04:28 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 2 Jan 2003 14:04:28 -0000 Received: (qmail 17787 invoked by alias); 2 Jan 2003 14:04:16 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 5624 Received: (qmail 17771 invoked from network); 2 Jan 2003 14:04:15 -0000 Date: Thu, 2 Jan 2003 22:04:12 +0800 From: James Devenish To: zsh-users@sunsite.dk Cc: David Lebel Subject: Refactoring _bsd_pkg Message-ID: <20030102140412.GG2863@gulag.guild.uwa.edu.au> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="UugvWAfsgieZRqgk" Content-Disposition: inline User-Agent: Mutt/1.3.28i --UugvWAfsgieZRqgk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, Is anyone using _bsd_pkg with OpenBSD 3.x? The platform for which _bsd_pkg is relevant to me is OpenBSD. Until today, I hadn't realised that _bsd_pkg even existed. Having just tried it, I think the reason I didn't notice is that it behave{s,d} incorrectly and therefore I didn't realised that something intelligent was at work. Also, I notice that the OpenBSD ports tree contains a patch that I can't see in zsh CVS HEAD. I have attached the completion function that I have been using for pkg_delete and pkg_info. Mine is concise, partly because it does not support pkg_add, pkg_create, or other BSDs. However, there are some salient differences. Having downloaded the _bsd_pkg HEAD, it appears that there are some errors in it from the OpenBSD perspective (as in previous versions). I don't know whether this is because other BSDs are different or because no one has noticed. Is anyone aware of these sorts of things or is it only my perception? --UugvWAfsgieZRqgk Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=_ports_pkg #compdef pkg_delete pkg_info # Thanks to the OpenBSD man pages for pkg_delete(1) and pkg_info(1) # (whence comes the switch documentation). local _pkg_delete_options _pkg_info_options _package _pkg_delete_options=( '-v[Turn on verbose output]' \ '-D[Do not execute deinstallation script]' \ '-d[Remove left-over empty directories]' \ '-n[Don''t deinstall, just report the steps to be taken]' \ '-f[Force, even if script failed or dependency exists]' \ '-p[Use this installation prefix if none specified by package]:directory:_files -/' \ '*:installed package:_package' ) _pkg_info_options=( '(* -)-a[Show information for all currently installed packages]' \ '-c[Show the one-line comment field for each package]' \ '-D[Show the install-message file (if any) for each package]' \ '-d[Show the long-description field for each package]' \ '-e[Test for the presence of another package]:prerequisite package:_package' \ '-f[Show the packing list instructions for each package]' \ '-I[Show the index entry for each package]' \ '-i[Show the install script (if any) for each package]' \ '-k[Show the de-install script (if any) for each package]' \ '-L[Show the files within each package (installed pathnames)]' \ '-l[Prefix each information category header]:directory:_files -/' \ '-m[Show the mtree file (if any) for each package]' \ '-p[Show the installation prefix for each package]' \ '-q[Be "quiet", just dump raw info]' \ '-R[Show which packages require a given package]' \ '-r[Show the requirements script (if any) for each package]' \ '-v[Turn on verbose output]' \ '*:installed package:_package' ) _package() { _values /var/db/pkg/*(-/:t) } case "$service" in pkg_delete) _arguments -s "$_pkg_delete_options[@]" && return 0 ;; pkg_info) _arguments -s "$_pkg_info_options[@]" && return 0 ;; esac --UugvWAfsgieZRqgk--