71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| #compdef id3
 | |
| 
 | |
| # ------------------------------------------------------------------------------
 | |
| # Description
 | |
| # -----------
 | |
| #
 | |
| #  Completion script for id3, based on v0.15
 | |
| #
 | |
| #  Last updated: 03.04.2013
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| # Authors
 | |
| # -------
 | |
| #
 | |
| #  * Valodim ( https://github.com/Valodim )
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| 
 | |
| _id3_genre () {
 | |
| 
 | |
|     setopt localoptions extendedglob
 | |
| 
 | |
|     local -A _id3_genres
 | |
|     # got them cached?
 | |
|     if _cache_invalid id3-genres || ! _retrieve_cache id3-genres ; then
 | |
| 
 | |
|         # generate from id3 -L otherwise
 | |
|         local tmp
 | |
|         for line in ${${${(f)"$(_call_program id3genre id3 -L)"}## #}}; do
 | |
|             tmp=( ${(s,: ,)line} )
 | |
|             _id3_genres[${tmp[1]}]=$tmp[2]
 | |
|             # alternate display string, which I decided against in the end
 | |
|             # to preserve reasonable alphabetic sorting
 | |
|             # "${(l:3:: :)${tmp[1]}}: ${tmp[2]}"
 | |
|         done
 | |
| 
 | |
|         # store if we got any
 | |
|         (( $#_id3_genres > 0 )) && _store_cache id3-genres _id3_genres
 | |
|     fi
 | |
| 
 | |
|     # bail if we don't
 | |
|     (( $#_id3_genres > 0 )) || { _message "could not fetch genres"; return }
 | |
| 
 | |
|     _wanted id3genres expl 'Genres' \
 | |
|         compadd -d _id3_genres -k _id3_genres && return 0
 | |
| 
 | |
| }
 | |
| 
 | |
| # only show files if at least one argument or something has been provided
 | |
| local showfiles=''
 | |
| (( CURRENT <= 2 )) && showfiles='!'
 | |
| 
 | |
| _arguments \
 | |
|   - tagging \
 | |
|       '-t[modify title tag]:title' \
 | |
|       '-T[modify track tag]:track' \
 | |
|       '-a[modify artist tag]:artist' \
 | |
|       '-A[modify album tag]:album' \
 | |
|       '-y[modify year tag]:year' \
 | |
|       '-c[modify comment tag]:comment' \
 | |
|       '-g[modify genre tag]:genre:_id3_genre' \
 | |
|       '(-)-l[lists tags]' \
 | |
|       '-R[use rfc822-style format for output]' \
 | |
|       '(-)-d[delete id3 tag]' \
 | |
|       $showfiles'*:mp3 file:_files -g \*.mp3' \
 | |
|   - meta \
 | |
|       '(- *)-L[list all genres]' \
 | |
|       '(- *)-h[display help info]' \
 | |
|       '(- *)-v[print version info]' && return 0
 | |
| 
 |