zsh-workers
 help / color / mirror / code / Atom feed
* Completion function for ZSH, how to submit it ??
@ 2003-07-04 13:40 baptiste daroussin
  2003-07-04 13:54 ` Peter Stephenson
  0 siblings, 1 reply; 2+ messages in thread
From: baptiste daroussin @ 2003-07-04 13:40 UTC (permalink / raw)
  To: zsh-workers

[-- Attachment #1: Type: text/plain, Size: 649 bytes --]

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@ece.fr>

[-- Attachment #2: _pkgtool --]
[-- Type: text/plain, Size: 3738 bytes --]

#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 "$@"

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-07-04 13:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-04 13:40 Completion function for ZSH, how to submit it ?? baptiste daroussin
2003-07-04 13:54 ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).