mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01: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…
	
	Add table
		Add a link
		
	
		Reference in a new issue