Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Refactoring _bsd_pkg
- X-seq: zsh-users 5624
- From: James Devenish <j-devenish@xxxxxxxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Refactoring _bsd_pkg
- Date: Thu, 2 Jan 2003 22:04:12 +0800
- Cc: David Lebel <lebel@xxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
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?
#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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author