summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Completion/Linux/Command/.distfiles2
-rw-r--r--Completion/Linux/Command/_pkgtool84
3 files changed, 92 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4674f3e24..fce763369 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-07-04 Peter Stephenson <pws@csr.com>
+
+ * 18807: baptiste daroussin <daroussi@ece.fr>:
+ Completion/Linux/Command/.distfiles,
+ Completion/Linux/Command/_pkgtool: Completion for Slackware
+ package management tool.
+
2003-07-03 Peter Stephenson <pws@csr.com>
* users/6367: Doc/Zsh/contrib.yo: match-words-by-style was
diff --git a/Completion/Linux/Command/.distfiles b/Completion/Linux/Command/.distfiles
index 5968b219d..34f7bc10d 100644
--- a/Completion/Linux/Command/.distfiles
+++ b/Completion/Linux/Command/.distfiles
@@ -1,4 +1,4 @@
DISTFILES_SRC='
.distfiles
-_losetup _modutils _mondo _uml _valgrind
+_losetup _modutils _mondo _pkgtool _uml _valgrind
'
diff --git a/Completion/Linux/Command/_pkgtool b/Completion/Linux/Command/_pkgtool
new file mode 100644
index 000000000..61578e011
--- /dev/null
+++ b/Completion/Linux/Command/_pkgtool
@@ -0,0 +1,84 @@
+#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 "$@"