From: Borsenkow Andrej <Andrej.Borsenkow@mow.siemens.ru>
To: "'Oliver Kiddle'" <okiddle@yahoo.co.uk>
Cc: "'ZSH Workers Mailing List'" <zsh-workers@sunsite.dk>
Subject: PATCH: RE: Mandrake urpmi suite completion
Date: Wed, 14 Nov 2001 17:32:15 +0300 [thread overview]
Message-ID: <000201c16d19$27f25f10$21c9ca95@mow.siemens.ru> (raw)
In-Reply-To: <3BE6772C.AD3447B6@yahoo.co.uk>
[-- Attachment #1: Type: text/plain, Size: 489 bytes --]
> > "(--help)--auto-select[select the pakages to update]" \
>
> You've got a typo here: ^^^
>
fixed.
>
> Do you mean _urls there?
>
Yes, fixed.
> > else
> > compadd -- file:// http:// ftp:// removable_
>
> An _wanted with description would be nice here (and similarly further
> above).
>
Added. Also modified to handle new urpmi-2.0+ removable format.
-andrej
Patch attached, I commit when I get article number back.
[-- Attachment #2: zsh-urpmi.diff --]
[-- Type: application/octet-stream, Size: 3836 bytes --]
Index: Completion/Mandrake/Command/_urpmi
===================================================================
RCS file: _urpmi
diff -N _urpmi
--- /dev/null Thu May 24 22:33:05 2001
+++ _urpmi Wed Nov 14 06:26:42 2001
@@ -0,0 +1,111 @@
+#compdef urpmi urpmi.addmedia urpmi.removemedia urpmi.update
+local state context line
+typeset -A opt_args
+
+_urpmi_cache_policy() {
+ [[ -e "$1" && -e /var/lib/urpmi/depslist.ordered && \
+ "$1" -nt /var/lib/urpmi/depslist.ordered ]] && return 1
+ return 0
+}
+
+case "$service" in
+ urpmi.addmedia )
+ _arguments -A '-*' \
+ "-update[mark as update media]" \
+ ":name of media: " \
+ ":media URL:->media_url" \
+ ": :(with)" \
+ ":relative path to hdlist file: " \
+ && return 0
+ ;;
+ urpmi.removemedia )
+ _arguments -A '-*' \
+ "(:)-a[select all media]" \
+ "(-a)"{,\*}": :->urpmi_media" \
+ && return 0
+ ;;
+ urpmi.update )
+ _arguments -A '-*' \
+ "(:)-a[select all non-removable media]" \
+ "-c[clean /var/cache/urpmi/headers on exit]" \
+ "*-f[force rebuild of hdlist or base files (if repeated)]" \
+ "(-a)"{,\*}": :->urpmi_media" \
+ && return 0
+ ;;
+ urpmi )
+ _arguments -A '-*' \
+ "(: -)--help[print usage information]" \
+ "(--help)--update[use only update media]" \
+ "(--help)--allow-medium-change[allow change of removable media]" \
+ "(--help)--auto[do not ask any questions]" \
+ "(--help)--auto-select[select the packages to update]" \
+ "(--help)--force[preceed even when some packages do not exist]" \
+ "(--help)--best-output[automatically select text or X interface]" \
+ "(--help)-a[select all packages matching command line]" \
+ "(--help -m -M)-m[choose minimum closure of requires (default)]" \
+ "(--help -m -M)-M[choose maximum closure of requires]" \
+ "(--help)-c[choose complete method for resolving requires]" \
+ "(--help)-p[allow search in provides]" \
+ "(--help -q -v)-q[be quiet]" \
+ "(--help -q -v)-v[verbose mode]" \
+ "(--help)"{,\*}": :->urpmi_rpms" \
+ && return 0
+ ;;
+esac
+
+case "$state" in
+ media_url )
+ if compset -P file://; then
+ _files -W / -/ && return 0
+ elif compset -P 'removable_cdrom(|_?)://'; then
+ _files -/ && return 0
+ elif compset -P removable_; then
+ local -a devices
+ locale dev foo
+ while read dev foo; do
+ [[ "$dev" != none ]] && devices=($devices ${dev#/dev/})
+ done < /etc/fstab
+ if [[ "$(rpm -q urpmi)" == urpmi-1.* ]]; then
+ _wanted urpmi_device expl 'device for removable media' \
+ compadd -s _ -S "" -a devices && return 0
+ else
+ _wanted urpmi_device expl 'device for removable media' \
+ compadd -s :// -S "" -a devices && return 0
+ fi
+ elif [[ -prefix '(ftp|http)://' ]]; then
+ _urls && return 0
+ else
+ _wanted urpmi_media_type expl 'type of media' \
+ compadd -- file:// http:// ftp:// removable_
+ fi
+ ;;
+ urpmi_media )
+ local source media brace ret=1
+ while read source media brace; do
+ [[ "$brace" != "{" ]] && continue
+ _wanted urpmi_media expl 'available media' \
+ compadd -- "$source"
+ ret=0
+ done < /etc/urpmi/urpmi.cfg
+ return "$ret"
+ ;;
+ urpmi_rpms )
+ local pkg foo expl
+ local -a pkgs
+ if [[ -r /var/lib/urpmi/depslist.ordered ]]; then
+ if _cache_invalid _urpmi_rpms || ! _retrieve_cache _urpmi_rpms; then
+ while read pkg foo; do
+ [[ "$pkg" == (#b)(*)-[^-]##-[^-]## ]] && {
+ pkgs[$#pkgs+1]=("$match[1]")
+ }
+ done < /var/lib/urpmi/depslist.ordered
+ _store_cache _urpmi_rpms pkgs
+ fi
+ _wanted urpmi_rpms expl 'RPM to install' \
+ compadd -a pkgs && return 0
+ fi
+ ;;
+esac
+
+return 1
+
prev parent reply other threads:[~2001-11-14 14:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-03 20:16 supress suffix (blank) in completion menu (selection) Borsenkow Andrej
2001-11-03 20:27 ` Bart Schaefer
2001-11-03 21:59 ` Mandrake urpmi suite completion Borsenkow Andrej
2001-11-03 22:35 ` Bart Schaefer
2001-11-05 11:25 ` Oliver Kiddle
2001-11-10 12:50 ` Chmouel Boudjnah
2001-11-14 14:32 ` Borsenkow Andrej [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000201c16d19$27f25f10$21c9ca95@mow.siemens.ru' \
--to=andrej.borsenkow@mow.siemens.ru \
--cc=okiddle@yahoo.co.uk \
--cc=zsh-workers@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).