Added completion script for Phing
This commit is contained in:
		
							parent
							
								
									4ffedd4ac8
								
							
						
					
					
						commit
						c0ebcbe56b
					
				|  | @ -0,0 +1,94 @@ | ||||||
|  | #compdef phing | ||||||
|  | # ------------------------------------------------------------------------------ | ||||||
|  | # Copyright (c) Igor M. Timoshenko <igor.timoshenko@i.ua> | ||||||
|  | # | ||||||
|  | # 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 Phing (http://phing.info). | ||||||
|  | # | ||||||
|  | # ------------------------------------------------------------------------------ | ||||||
|  | # Authors | ||||||
|  | # ------- | ||||||
|  | # | ||||||
|  | #  * Igor Timoshenko <igor.timoshenko@i.ua> | ||||||
|  | # | ||||||
|  | # ------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | _phing() { | ||||||
|  |   local context curcontext="$curcontext" state line ret=1 | ||||||
|  |   integer NORMARG | ||||||
|  |   typeset -A opt_args | ||||||
|  | 
 | ||||||
|  |   # follow http://phing.info/docs/stable/webhelp/sec.commandlineargs.html for more information | ||||||
|  |   _arguments \ | ||||||
|  |     '(-h -help)'{-h,-help}'[display the help screen]' \ | ||||||
|  |     '(-v -version)'{-v,-version}'[print version information and exit]' \ | ||||||
|  |     '(-l -list)'{-l,-list}'[list all available targets in buildfile (excluding targets that have their hidden attribute set to true)]' \ | ||||||
|  |     '(-q -quiet)'{-q,-quiet}'[quiet operation, no output at all]' \ | ||||||
|  |     '-verbose[verbose, give some more output]' \ | ||||||
|  |     '-debug[output debug information]' \ | ||||||
|  |     '-logfile [use given file for log]:file:_files' \ | ||||||
|  |     '-D[set the property to the specified value to be used in the buildfile]' \ | ||||||
|  |     '-find []:file:_files' \ | ||||||
|  |     '-buildfile [specify an alternate buildfile name. Default is build.xml]:file:_files' \ | ||||||
|  |     '-logger [specify an alternate logger. Default is phing.listener.DefaultLogger. Other options include phing.listener.NoBannerLogger, phing.listener.AnsiColorLogger, phing.listener.XmlLogger, phing.listener.TargetLogger and phing.listener.HtmlColorLogger]' \ | ||||||
|  |     '-propertyfile [load properties from the specified file]:file:_files' \ | ||||||
|  |     '(-v --version)'{-v,--version}'[show version]' \ | ||||||
|  |     '1: :->targets' \ | ||||||
|  |     '*:: :->args' \ | ||||||
|  |   && ret=0 | ||||||
|  | 
 | ||||||
|  |   case $state in | ||||||
|  |     targets) | ||||||
|  |       local buildfile; buildfile=build.xml | ||||||
|  |       if [[ ! -f $buildfile ]] | ||||||
|  |       then | ||||||
|  |         ret=0 | ||||||
|  |       else | ||||||
|  |         local targets; targets=($(sed -nE "/<target /s/.*name=[\"'](\w+)[\"'].*/\1/p" $buildfile)) | ||||||
|  |         _describe -t 'targets' 'target' targets && ret=0 | ||||||
|  |       fi | ||||||
|  |     ;; | ||||||
|  |     args) | ||||||
|  |       if [[ CURRENT -eq NORMARG && ${+opt_args[--match]} -eq 0 ]] | ||||||
|  |       then | ||||||
|  |         # If the current argument is the first non-option argument | ||||||
|  |         # and --match isn't present then a pattern is expected | ||||||
|  |         _message -e patterns 'pattern' && ret=0 | ||||||
|  |       else | ||||||
|  |         _files | ||||||
|  |       fi | ||||||
|  |     ;; | ||||||
|  |   esac | ||||||
|  | 
 | ||||||
|  |   return ret | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | _phing "$@" | ||||||
|  | 
 | ||||||
|  | # 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 | ||||||
		Loading…
	
		Reference in New Issue