mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-01 18:30:55 +01:00
18893, 18901: new completions for rar/unrar and ogg vorbis; improve _pkgtool
This commit is contained in:
parent
f863b49206
commit
adf2c2a0b6
4 changed files with 244 additions and 1 deletions
137
Completion/Unix/Command/_rar
Normal file
137
Completion/Unix/Command/_rar
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
#compdef rar unrar
|
||||
|
||||
|
||||
_rar(){
|
||||
case $service in
|
||||
rar)
|
||||
_arguments -s \
|
||||
'*::rar command:_rar_command'
|
||||
;;
|
||||
unrar)
|
||||
_arguments -s \
|
||||
'*::unrar command:_unrar_command'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_compression_level() {
|
||||
compression_level=
|
||||
_tags compression_level && { compadd "$@" -k compression_level || compadd "$@" ${(kv)=compression_level} }
|
||||
}
|
||||
|
||||
_dico_size() {
|
||||
dico_size=(64 128 256 512 1024 2048 4096 a b c d e f g)
|
||||
_tags dico_size && { compadd "$@" -k dico_size || compadd "$@" ${(kv)=dico_size} }
|
||||
}
|
||||
|
||||
_unrar_command () {
|
||||
cmd=(e l lt p t v vt x)
|
||||
if (( CURRENT == 1 ));then
|
||||
_tags cmd && { compadd "$@" -k cmd || compadd "$@" ${(kv)=cmd} }
|
||||
else
|
||||
_arguments -C \
|
||||
'-ad[Append archive name to destination path]'\
|
||||
'-ap[Set path inside archive]'\
|
||||
'-av\-[Disable authenticity verification check]'\
|
||||
'-c\-[Disable comments show]'\
|
||||
'-cfg\-[Disable read configuration]'\
|
||||
'-cl\-[Convert names to lower case]'\
|
||||
'-cu[Convert names to upper case]'\
|
||||
'-dh[Open shared files]'\
|
||||
'-ep[Exclude paths from name]'\
|
||||
'-f[Freshen files]'\
|
||||
'-idp[Disable percentage display]'\
|
||||
'-ierr[Send all messages to stderr]'\
|
||||
'-inul[Disable all messages]'\
|
||||
'-kb[Keep broken extracted files]'\
|
||||
'-o\+[Overwrite existing files]'\
|
||||
'-o\-[Do not overwrite existing files]'\
|
||||
'-ow[Save or restore file owner and group]'\
|
||||
'-p\-[Do not query password]'\
|
||||
'-r[Recurse subdirectorie]'\
|
||||
'-ta[Process files modified after <date> in YYYYMMDDHHMMSS format]'\
|
||||
'-tb[Process files modified before <date> in YYYYMMDDHHMMSS format]'\
|
||||
'-tn[Process files newer than <time>]'\
|
||||
'-to[Process files older than <time>]'\
|
||||
'-u[Update files]'\
|
||||
'-v[Create volumes with size autodetection or list all volumes]'\
|
||||
'-ver[File version control]'\
|
||||
'-vp[Pause before each volume]'\
|
||||
'-x[Exclude specified file]'\
|
||||
'-y[Assume Yes on all queries]'\
|
||||
'*:RAR files:_files -g \*.rar' && return 0
|
||||
fi
|
||||
}
|
||||
|
||||
_rar_command () {
|
||||
cmd=(a c cf cw d e f i k l lt m mf p r rc rr rv s t u v vt x)
|
||||
if (( CURRENT == 1 ));then
|
||||
_tags cmd && { compadd "$@" -k cmd || compadd "$@" ${(kv)=cmd} }
|
||||
else
|
||||
_arguments -s \
|
||||
'-ad[Append archive name to destination path]'\
|
||||
'-ag[Generate archive name using the current date]'\
|
||||
'-ap[Set path inside archive]'\
|
||||
'-as[Synchronize archive contents]'\
|
||||
'-av[Put authenticity verification (registered versions only)]'\
|
||||
'-av\-[Disable authenticity verification check]'\
|
||||
'-c\-[Disable comments show]'\
|
||||
'-cfg\-[Disable read configuration]'\
|
||||
'-cl\-[Convert names to lower case]'\
|
||||
'-cu[Convert names to upper case]'\
|
||||
'-df[Delete files after archiving]'\
|
||||
'-dh[Open shared files]'\
|
||||
'-ds[Disable name sort for solid archive]'\
|
||||
'-e[Set file exclude attributes]'\
|
||||
'-ed[Do not add empty directories]'\
|
||||
'-en[Do not put end of archive block]'\
|
||||
'-ep[Exclude paths from name]'\
|
||||
'-ep1[Exclude base directory from names]'\
|
||||
'-ep2[Expand paths to full]'\
|
||||
'-f[Freshen files]'\
|
||||
'-hp[Encrypt both file data and headers]'\
|
||||
'-idp[Disable percentage display]'\
|
||||
'-ierr[Send all messages to stderr]'\
|
||||
'-ilog[Log errors to file (registered versions only)]'\
|
||||
'-inul[Disable all messages]'\
|
||||
'-isnd[Enable sound]'\
|
||||
'-k[Lock archive]'\
|
||||
'-kb[Keep broken extracted files]'\
|
||||
'-m+[Set compression level (0-store...3-default...5-maximal)]:compression level:(( 0\:store 1\:fastest 2\:fast 3\:normal 4\:good 5\:maximal ))'\
|
||||
'-md+[Dictionary size in KB]:dictionaty size in KB:_dico_size' \
|
||||
'-ms[Specify file types to store]'\
|
||||
'-o\+[Overwrite existing files]'\
|
||||
'-o\-[Do not overwrite existing files]'\
|
||||
'-ol[Save symbolic links as the link instead of the file]'\
|
||||
'-ow[Save or restore file owner and group]'\
|
||||
'-p[Set password]'\
|
||||
'-p\-[Do not query password]'\
|
||||
'-r[Recurse subdirectorie]'\
|
||||
'-r0[Recurse subdirectories for wildcard names only]'\
|
||||
'-rr[Add data recovery record]'\
|
||||
'-rv[Create recovery volumes]'\
|
||||
'-s[Create solid archive]'\
|
||||
'-se[Create solid archive using extension]'\
|
||||
'-sv[Create solid archive using volumes]'\
|
||||
'-s\-[Disable solid archiving]'\
|
||||
'-sfx[Create SFX archive]'\
|
||||
'-t[Test files after archiving]'\
|
||||
'-ta[Process files modified after <date> in YYYYMMDDHHMMSS format]'\
|
||||
'-tb[Process files modified before <date> in YYYYMMDDHHMMSS format]'\
|
||||
'-tk[Keep original archive time]'\
|
||||
'-tl[Set archive time to latest file]'\
|
||||
'-tn[Process files newer than <time>]'\
|
||||
'-to[Process files older than <time>]'\
|
||||
'-u[Update files]'\
|
||||
'-v[Create volumes with size autodetection or list all volumes]'\
|
||||
'-ver[File version control]'\
|
||||
'-vn[Use the old style volume naming scheme]'\
|
||||
'-vp[Pause before each volume]'\
|
||||
'-w+[Assign work directory]:work directory:_files -/'\
|
||||
'-x[Exclude specified file]'\
|
||||
'-y[Assume Yes on all queries]'\
|
||||
'-z+[Read archive comment from file]:comment file:_files' \
|
||||
'*:files:_files'
|
||||
fi
|
||||
}
|
||||
_rar "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue