96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #compdef patool
 | |
| # ------------------------------------------------------------------------------
 | |
| # Copyright (c) 2017 Github zsh-users - http://github.com/zsh-users
 | |
| #
 | |
| # Permission is hereby granted, free of charge, to any person obtaining
 | |
| # a copy of this software and associated documentation files (the
 | |
| # "Software"), to deal in the Software without restriction, including
 | |
| # without limitation the rights to use, copy, modify, merge, publish,
 | |
| # distribute, sublicense, and/or sell copies of the Software, and to
 | |
| # permit persons to whom the Software is furnished to do so, subject to
 | |
| # the following conditions:
 | |
| #
 | |
| # The above copyright notice and this permission notice shall be included
 | |
| # in all copies or substantial portions of the Software.
 | |
| #
 | |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | |
| # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | |
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | |
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 | |
| # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 | |
| # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 | |
| # OTHER DEALINGS IN THE SOFTWARE.
 | |
| # ------------------------------------------------------------------------------
 | |
| # Description
 | |
| # -----------
 | |
| #
 | |
| #  Completion script for patool (https://github.com/wummel/patool).
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| # Authors
 | |
| # -------
 | |
| #
 | |
| # * Sergei Eremenko (https://github.com/SmartFinn)
 | |
| #
 | |
| # ------------------------------------------------------------------------------
 | |
| 
 | |
| local state line ret=1
 | |
| 
 | |
| _arguments -C \
 | |
|   '(-h --help)'{-h,--help}'[show help message and exit]' \
 | |
|   '(--non-interactive)'--non-interactive'[do not query for user input]' \
 | |
|   '(-v --verbose)'{-v,--verbose}'[verbose operation]' \
 | |
|   '1:cmd:->cmds' \
 | |
|   '*:arg:->args' && ret=0
 | |
| 
 | |
| case $state in
 | |
|   (cmds)
 | |
|     local -a cmds
 | |
| 
 | |
|     cmds=(
 | |
|       'create:create an archive from given files'
 | |
|       'diff:show differences between two archives'
 | |
|       'extract:extract files from given archives'
 | |
|       'formats:show all supported archive formats'
 | |
|       'list:list files in archives'
 | |
|       'repack:repackage archive to a different format'
 | |
|       'recompress:recompress an archive to smaller size'
 | |
|       'search:search in archive contents for given pattern'
 | |
|       'test:test the given archives'
 | |
|     )
 | |
| 
 | |
|     _describe -t commands 'patool commands' cmds && ret=0
 | |
|     ;;
 | |
|   (args)
 | |
|     case $line[1] in
 | |
|       (extract)
 | |
|         _arguments \
 | |
|           '--outdir[extract to the given output directory]:select directory:_files -/' \
 | |
|           '*:files:_files' && ret=0
 | |
|       ;;
 | |
|       (formats)
 | |
|         _message 'no more arguments' && ret=0
 | |
|       ;;
 | |
|       (search)
 | |
|         _arguments \
 | |
|           '2:search pattern:' \
 | |
|           '*:files:_files' && ret=0
 | |
|       ;;
 | |
|       (*)
 | |
|         _arguments \
 | |
|           '*:files:_files' && ret=0
 | |
|       ;;
 | |
|     esac
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| return $ret
 | |
| 
 | |
| # Local Variables:
 | |
| # mode: Shell-Script
 | |
| # sh-indentation: 2
 | |
| # indent-tabs-mode: nil
 | |
| # sh-basic-offset: 2
 | |
| # End:
 | |
| # vim: ft=zsh sw=2 ts=2 et
 |