mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-29 06:51:03 +02:00
Gergely Nagy, 16644: completion for cdcd.
This commit is contained in:
parent
2cd4492c02
commit
d5ac256e14
3 changed files with 107 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-02-14 Clint Adams <clint@zsh.org>
|
||||
|
||||
* Gergely Nagy, 16644: Completion/Unix/Command/.distfiles,
|
||||
Completion/Unix/Command/_cdcd: completion for cdcd.
|
||||
|
||||
2002-02-14 Geoff Wing <gcw@zsh.org>
|
||||
|
||||
* unposted: Doc/Zsh/metafaq.yo: update distribution sites - remove four
|
||||
|
|
|
@ -16,5 +16,5 @@ _dict _grep _lzop _prcs _tiff _elm
|
|||
_diff _gs _make _psutils _tin _apm _mail
|
||||
_last _loadkeys _modutils _ruby _sysctl _links _samba
|
||||
_user_admin _rsync _arping _spamassassin _mtools _ifconfig
|
||||
_fsh _chkconfig
|
||||
_fsh _chkconfig _cdcd
|
||||
'
|
||||
|
|
101
Completion/Unix/Command/_cdcd
Normal file
101
Completion/Unix/Command/_cdcd
Normal file
|
@ -0,0 +1,101 @@
|
|||
#compdef cdcd
|
||||
|
||||
typeset -A opt_args
|
||||
|
||||
_cdcd_tracks ()
|
||||
{
|
||||
cdcd info | sed -e 1,2d -e 4d -e "s,Total tracks: *\([0-9]\+\).*,\1,"
|
||||
}
|
||||
|
||||
_cdcd_track_list ()
|
||||
{
|
||||
seq 1 $(_cdcd_tracks)
|
||||
}
|
||||
|
||||
_cdcd_track_list_verbose ()
|
||||
{
|
||||
cdcd tracks | grep "^[ 0-9]\+:" | sed -e 's,^ *\([0-9]\+\):[ >]*. *[^ ]* *\(.*\) \+,\1\\\:\"\2\",'
|
||||
}
|
||||
|
||||
_cdcd_commands ()
|
||||
{
|
||||
_arguments \
|
||||
':cdcd command:((
|
||||
play\:"play a track"
|
||||
stop\:"stop plating"
|
||||
open\:"eject the CD-ROM tray"
|
||||
eject\:"eject the CD-ROM tray"
|
||||
close\:"close the CD-ROM tray"
|
||||
pause\:"pause playing"
|
||||
resume\:"resume playing"
|
||||
ff\:"fast forward"
|
||||
rew\:"rewind"
|
||||
next\:"advance one track"
|
||||
prev\:"return to previous track"
|
||||
getvol\:"get current volume settings"
|
||||
setvol\:"set volume settings"
|
||||
status\:"get numerical data regarding the CD status"
|
||||
info\:"short information about the CD"
|
||||
tracks\:"list all tracks on the CD"
|
||||
rndplay\:"play a random track"
|
||||
list\:"list all CDs in a CD-ROM changer"
|
||||
slot\:"changes the current CD in the CD-ROM changer"
|
||||
edit\:"edit information about the disc"
|
||||
ext\:"Extended information about the disc"
|
||||
refresh\:"refresh the information about the CD from a CDDB server"
|
||||
device\:"change the CD-ROM device cdcd will use"
|
||||
verbose\:"toggle verbosity"
|
||||
sites\:"edit the server list"
|
||||
access\:"configure cddb access method"
|
||||
help\:"display a help message"
|
||||
))'
|
||||
}
|
||||
|
||||
if (( CURRENT == 2 )); then
|
||||
_cdcd_commands
|
||||
else
|
||||
shift words
|
||||
(( --CURRENT ))
|
||||
case "$words[1]" in
|
||||
# sub-commands with no args
|
||||
stop|open|eject|close|pause|resume|next|prev|getvol)
|
||||
;;
|
||||
status|info|tracks|rndplay|list|slot|refresh)
|
||||
;;
|
||||
# sub-commands with args that cannot be completed
|
||||
ff|rew|setvol)
|
||||
;;
|
||||
# sub-commands that do not work as expected
|
||||
access|edit|sites)
|
||||
;;
|
||||
# completeable sub-commands
|
||||
verbose)
|
||||
_arguments \
|
||||
':verbose subcommand:((
|
||||
on\:"turn verbosity on"
|
||||
off\:"turn verbosity off"))'
|
||||
;;
|
||||
ext)
|
||||
_arguments \
|
||||
":ext subcommand:((
|
||||
disc\:\"extra information about the disc\"
|
||||
$(_cdcd_track_list)))"
|
||||
;;
|
||||
device)
|
||||
compadd "$expl[@]" /dev/cd* /dev/cd*/*
|
||||
;;
|
||||
play)
|
||||
if (( CURRENT == 2 )); then
|
||||
_arguments ":play subcommand:((
|
||||
$(_cdcd_track_list_verbose)))"
|
||||
else
|
||||
shift words
|
||||
(( --CURRENT ))
|
||||
_arguments ":play subcommand2:((
|
||||
$(_cdcd_track_list_verbose)))"
|
||||
fi
|
||||
;;
|
||||
help)
|
||||
_cdcd_commands;;
|
||||
esac
|
||||
fi
|
Loading…
Reference in a new issue