Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Completion function for ZSH, how to submit it ??
- X-seq: zsh-workers 18807
- From: baptiste daroussin <daroussi@xxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Completion function for ZSH, how to submit it ??
- Date: 04 Jul 2003 15:40:06 +0200
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
I send it once again (no reply before),
My function works, it is very usefull (at least for me :) ), I'd like to see it integrated in ZSH.
How to do so?
(tested on slakware 9.0 with zsh 4.0.6)
--old message--
Here is my first completion function :)
It's a completion function for pkgtool, the slackware package management
system.
I don't know the process to submit it to the ZSH developper (perhaps
here, wrong ??)
So here is may function : _pkgtool (it works fine for me)
I will create other function as soon as I'll have time, I find it it
quite easy to do (for simple one) and it change the life :)
--
baptiste daroussin <daroussi@xxxxxx>
#compdef installpkg upgradepkg removepkg pkgtool explodepkg makepkg
_slackware_pkg() {
local flags
case "$service" in
installpkg)
flags=(
'-warn[warn if files will be overwritten, but do not install]'
'-root=[install someplace else, like /mnt]:Root directory:_path_files -/'
'-infobox[use dialog to draw an info box]'
'-menu[confirm package installation with a menu]'
'-ask[used with menu mode: always ask if a package should be installed regardless of what the package'\''s priority is]'
'-priority[provide a priority for the entire package list to use instead of the priority in the tagfile]:Priority list:(ADD REC OPT SKP)'
'-tagfile[specify a different file to use for package priorities. The default is "tagfile" in the package'\''s directory]:Tagfile:_files -/'
)
_arguments -s \
$flags[@] \
'*:Slackware packages:_files -g \*.tgz'
;;
removepkg)
flags=(
'-warn[Generate a report to the standard output about which files and directories would be removed, but does not actually remove the package.]'
'-preserve[If specified, the complete package subtree is reconstructed in /tmp/preserved_packages/packagename.]'
'-copy[Construct a copy of the package under /tmp/preserved_packages/packagename, but don'\''t remove it. (same effect as -warn -preserve)]'
'-keep[Save the intermediate files created by removepkg (delete_list, required_files, uniq_list, del_link_list, required_links, required_list). Mostly useful for debugging purposes.]'
)
_arguments -s \
$flags[@] \
'*:Package name:_files -W /var/log/packages/ -/'
;;
upgradepkg)
flags=(
'--install-new[the behavior is modified to install new packages in addition to upgrading existing ones.]'
'--reinstall[upgrade all packages even if the same version is already installed.]'
'--verbose[Show all the gory details of the upgrade.]'
)
_arguments -s \
$flags[@] \
'*:Slackware packages:_files -g \*.tgz'
;;
explodepkg)
_arguments -s \
'*:Slackware packages:_files -g \*.tgz'
;;
makepkg)
flags=(
'(--linkadd -l)'{--linkadd,-l}'[moves symlinks into doinst.sh: recommended]:Answer:(y n)'
'(--chown -c)'{--chown,-c}'[resets all permissions to root:root 755 - not generally recommended]:Answer:(y n)'
)
_arguments -s \
$flags[@]
;;
pkgtool)
flags=(
'-sets[Install the disk sets A, B, C. Seperate the disk set names by '\''#'\'' symbols.]'
'-source_mounted[When this flag is present, pkgtool will not attempt to unmount and remount the source device with each disk.]'
'-ignore_tagfile[When this flag is present, pkgtool will install every *.tgz package encountered no matter what the tagfiles say.]'
'-tagfile[This flag is used to specify from the command line which tagfile should be used for the installation.]:Tagfile:_files -/'
'-source_dir[Used when installing multiple packages from disk sets. This is the directory in which the subdirectories for each disk are found.]:Source directory:_path_files -/'
'-target_dir[The directory where the target root directory is located. This is '/' when installing on the hard drive, or typically '\''/mnt'\'' when installing from an install disk.]:Target directory:_path_files -W -/'
'-source_device[The source device to install from. This is not used if you'\''ve provided the -source_mounted flag. It'\''s usually used when installing from floppy.]:Source device:_files -/'
)
_arguments -s \
$flags[@]
;;
esac
}
_slackware_pkg "$@"
Messages sorted by:
Reverse Date,
Date,
Thread,
Author