From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4029 invoked from network); 20 May 2008 15:38:59 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.4 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 20 May 2008 15:38:59 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 40314 invoked from network); 20 May 2008 15:38:53 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 20 May 2008 15:38:53 -0000 Received: (qmail 9255 invoked by alias); 20 May 2008 15:38:50 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 25077 Received: (qmail 9245 invoked from network); 20 May 2008 15:38:49 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 20 May 2008 15:38:49 -0000 Received: from cork.scru.org (cork.scru.org [209.20.67.2]) by bifrost.dotsrc.org (Postfix) with ESMTP id 766048059118 for ; Tue, 20 May 2008 17:38:40 +0200 (CEST) Received: by cork.scru.org (Postfix, from userid 1000) id 2BD371040D7; Tue, 20 May 2008 15:38:38 +0000 (UTC) Date: Tue, 20 May 2008 15:38:38 +0000 From: Clint Adams To: zsh-workers@sunsite.dk Subject: Re: Completions for GNUpod Message-ID: <20080520153838.GB22497@scru.org> Mail-Followup-To: zsh-workers@sunsite.dk References: <20080520140241.GA14044@cameron> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080520140241.GA14044@cameron> User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Virus-Scanned: ClamAV 0.91.2/7181/Tue May 20 17:08:32 2008 on bifrost X-Virus-Status: Clean On Tue, May 20, 2008 at 10:02:41AM -0400, Omari Norman wrote: > I have written completions for the GNUpod suite of scripts. It's a > command-line utitlity to manipulate the contents of an iPod > (unfortunately one cannot simply copy files to the device because it > uses an opaque database.) See Thanks. We can combine these into a single function: Index: Completion/Unix/Command/_gnupod =================================================================== RCS file: Completion/Unix/Command/_gnupod diff -N Completion/Unix/Command/_gnupod --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Completion/Unix/Command/_gnupod 20 May 2008 15:35:48 -0000 @@ -0,0 +1,91 @@ +#compdef gnupod_addsong gnupod_addsong.pl=gnupod_addsong gnupod_check gnupod_check.pl=gnupod_check gnupod_INIT gnupod_INIT.pl=gnupod_INIT gnupod_search gnupod_search.pl=gnupod_search mktunes mktunes.pl=mktunes tunes2pod tunes2pod.pl=tunes2pod + +local arguments + +case "$service" in + (gnupod_addsong) + arguments=( + '(-h --help)'{-h,--help}'[display help and exit]' + --version'[output version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint, default is $IPOD_MOUNTPOINT]:mount point:_files' + '(-r --restore)'{-r,--restore}'[Restore the iPod (create a new GNUtunesDB from scratch)]' + '(-d --duplicate)'{-d,--duplicate}'[Allow duplicate files]' + '(-p --playlist)'{-p,--playlist=}'[Add songs to this playlist]:playlist:' + --disable-v1'[Do not read ID3v1 Tags (MP3 Only)]' + --disable-v2'[Do not read ID3v2 Tags (MP3 Only)]' + --decode='[Convert FLAC Files to WAVE/MP3 or AAC on-the-fly]:encoding:(pcm mp3 aac aacbm)' + '(-e --reencode)'{-e,--reencode=}'[Reencode MP3/AAC files with new quality on-the-fly]:quality number (0 = Good 9 = Bad):(1 2 3 4 5 6 7 8 9)' + --set-artist='[Set Artist (Override ID3 Tag)]:artist:' + --set-album='[Set Album (Override ID3 Tag)]:album:' + --set-genre='[Set Genre (Override ID3 Tag)]:genre:' + --set-rating='[Set Rating]:rating:' + --set-playcount='[Set Playcount]:play count:' + --set-songnum='[Override Songnum/Tracknum field]:song number:' + '*:file to add:_files' +) + ;; + + (gnupod_check) + arguments=( + '(-h --help)'{-h,--help}'[display help and exit]' + --version'[output version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' + --fixit'[try to fixup some errors]' +) + ;; + + (gnupod_INIT) + arguments=( + '(-h --help)'{-h,--help}'[display help and exit]' + --version'[output version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' + '(-d --disable-convert)'{-d,--disable-convert}'[do not try to convert an existing iTunesDB]' + '(-f --france)'{-f,--france}'[limit volume to 100dB, works only on very old iPods]' +) + ;; + + (gnupod_search) + arguments=( + --help'[display help and exit]' + --version'[display version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' + '(-t --title)'{-t,--title=}'[search songs by title]:title string:' + '(-a --artist)'{-a,--artist=}'[search songs by artist]:artist string:' + '(-l --album)'{-l,--album=}'[search songs by album]:album string:' + '(-i --id)'{-i,--id=}'[search songs by ID]:ID integer:' + '(-g --genre)'{-g,--genre=}'[search songs by genre]:genre string:' + '(-c --playcount)'{-c,--playcount=}'[search songs by playcount]:playcount:' + '(-R --podcastrss)'{-R,--podcastrss=}'[search songs by RSS]:RSS:' + '(-G --podcastguid)'{-G,--podcastguid=}'[search songs by GUID]:GUID:' + '(-o --match-once)'{-o,--match-once}'[search does not need to match multiple times]' + --delete'[remove matched songs from the iPod]' + --view='[modify output (default is ialt)]:output string:' + --rename='[rename key into value for matched songs]:KEY=VALUE:' +) + ;; + + (mktunes) + arguments=( + '(-h --help)'{-h,--help}'[display help and exit]' + --version'[output version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' + '(-n --ipod-name)'{-n,--ipod-name=}'[iPod Name (For unlabeled iPods)]:name:' + '(-v --volume)'{-v,--volume=}'[adjust volume +-VALUE%]:volume percent:' + '(-e --energy)'{-e,--energy}'[save energy (disable scrolling title)]' +) + ;; + + (tunes2pod) + arguments=( + '(-h --help)'{-h,--help}'[display help and exit]' + --version'[output version information and exit]' + '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' + --force'[disable sync checking]' +) + ;; + (*) + return 1 + ;; +esac + +_arguments : $arguments