mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			132 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#compdef rar unrar
 | 
						|
 | 
						|
local common expl
 | 
						|
 | 
						|
common=(
 | 
						|
  '-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+:password'
 | 
						|
  '-p\-[do not query password]'
 | 
						|
  '-r[recurse subdirectorie]'
 | 
						|
  '-ta+[process files modified after a date]:date (YYYYMMDDHHMMSS)'
 | 
						|
  '-tb+[process files modified before a date]:date (YYYYMMDDHHMMSS)'
 | 
						|
  '-tn+[process files newer than a specified time]:time'
 | 
						|
  '-to+[process files older than a specified time]: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 answer to all queries]'
 | 
						|
)
 | 
						|
 | 
						|
case $service in
 | 
						|
  unrar)
 | 
						|
    if (( CURRENT == 2 )); then
 | 
						|
       _values 'rar command' \
 | 
						|
	'e[extract files to current directory]' \
 | 
						|
	'l[list archive]' \
 | 
						|
	'lt[list archive (technical format)]' \
 | 
						|
	'lb[list archive (bare format)]' \
 | 
						|
	'p[print file to stdout]' \
 | 
						|
	't[test archive files]' \
 | 
						|
	'v[verbosely list archive]' \
 | 
						|
	'vt[verbosely list archive (technical format)]' \
 | 
						|
	'vb[verbosely list archive (bare format)]' \
 | 
						|
	'x[extract files with full path]' && return
 | 
						|
    else
 | 
						|
      _arguments -S \
 | 
						|
	'-ep3[expand paths to full including the drive letter]' \
 | 
						|
        '-idc[disable ___ display]' \
 | 
						|
        '-idd[disable ___ display]' \
 | 
						|
        '-idq[disable ___ display]' \
 | 
						|
	'-n+:file to include:_files' \
 | 
						|
	'-n@+:file of files to include:_files' \
 | 
						|
        "$common[@]" \
 | 
						|
        '*:RAR files:_files -g \*.rar\(-.\)' && return
 | 
						|
    fi
 | 
						|
  ;;
 | 
						|
  rar)
 | 
						|
    if (( CURRENT == 2 )); then
 | 
						|
      _values 'rar command' \
 | 
						|
	'a[add files to archive]' \
 | 
						|
	'c[add archive comment]' \
 | 
						|
	'cf[add files comment]' \
 | 
						|
	'cw[write archive comment to file]' \
 | 
						|
	'd[delete files from archive]' \
 | 
						|
	'e[extract files to current directory]' \
 | 
						|
	'f[freshen files in archive]' \
 | 
						|
	'i[find string in archives]' \
 | 
						|
	'k[lock archive]' \
 | 
						|
	'l[list archive]' \
 | 
						|
	'lt[list archive (technical format)]' \
 | 
						|
	'lb[list archive (bare format)]' \
 | 
						|
	'm[move to archive]' \
 | 
						|
	'mf[move to archive (files only)]' \
 | 
						|
	'p[print file to stdout]' \
 | 
						|
	'r[repair archive]' \
 | 
						|
	'rc[reconstruct missing volumes]' \
 | 
						|
	'rr[add data recovery record]' \
 | 
						|
	'rv[create recovery volumes]' \
 | 
						|
	's[convert archive to or from SFX]' \
 | 
						|
	't[test archive files]' \
 | 
						|
	'u[update files in archive]' \
 | 
						|
	'v[verbosely list archive]' \
 | 
						|
	'vt[verbosely list archive (technical format)]' \
 | 
						|
	'vb[verbosely list archive (bare format)]' \
 | 
						|
	'x[extract files with full path]' && return
 | 
						|
    else
 | 
						|
      _arguments -S \
 | 
						|
	'-ag[generate archive name using the current date]' \
 | 
						|
	'-as[synchronize archive contents]' \
 | 
						|
	'-av[put authenticity verification (registered versions only)]' \
 | 
						|
	'-df[delete files after archiving]' \
 | 
						|
	'-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]' \
 | 
						|
	'-ep1[exclude base directory from names]' \
 | 
						|
	'-ep2[expand paths to full]' \
 | 
						|
	'-hp[encrypt both file data and headers]' \
 | 
						|
	'-ilog[log errors to file (registered versions only)]' \
 | 
						|
	'-isnd[enable sound]' \
 | 
						|
	'-k[lock archive]' \
 | 
						|
	'-m+[set compression level]:compression level:(( 0\:store 1\:fastest 2\:fast 3\:normal 4\:good 5\:maximal ))' \
 | 
						|
	'-md+[dictionary size]:dictionary size (KB):( 64 128 256 512 1024 2048 4096 a b c d e f g )' \
 | 
						|
	'-ms[specify file types to store]' \
 | 
						|
	'-ol[save symbolic links as the link instead of the file]' \
 | 
						|
	'-p[set password]' \
 | 
						|
	'-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]' \
 | 
						|
	'-tk[keep original archive time]' \
 | 
						|
	'-tl[set archive time to latest file]' \
 | 
						|
	'-vn[use the old style volume naming scheme]' \
 | 
						|
	'-w+[assign work directory]:work directory:_files -/' \
 | 
						|
	"$common[@]" \
 | 
						|
	'-z+[read archive comment from file]:comment file:_files' \
 | 
						|
	'*:files:_files' && return
 | 
						|
    fi
 | 
						|
  ;;
 | 
						|
esac
 |