summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_rar
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_rar')
-rw-r--r--Completion/Unix/Command/_rar137
1 files changed, 137 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_rar b/Completion/Unix/Command/_rar
new file mode 100644
index 000000000..73b8db3d4
--- /dev/null
+++ b/Completion/Unix/Command/_rar
@@ -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 "$@"