| 
									
										
										
										
											2011-09-10 06:48:40 -04:00
										 |  |  | _enumerateGrailsScripts() { | 
					
						
							|  |  |  |     # Default directoryies | 
					
						
							|  |  |  |     directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Check all of the plugins directories, if they exist | 
					
						
							|  |  |  |     if [ -d plugins ] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |         directories+=(plugins/*/scripts) | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     # Enumerate all of the Groovy files | 
					
						
							|  |  |  |     files=() | 
					
						
							|  |  |  |     for dir in $directories; | 
					
						
							|  |  |  |     do | 
					
						
							|  |  |  |         if [ -d $dir ] | 
					
						
							|  |  |  |         then | 
					
						
							| 
									
										
										
										
											2011-09-10 07:00:31 -04:00
										 |  |  |             files+=($dir/[^_]*.groovy) | 
					
						
							| 
									
										
										
										
											2011-09-10 06:48:40 -04:00
										 |  |  |         fi | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     # Don't try to basename () | 
					
						
							|  |  |  |     if [ ${#files} -eq 0 ]; | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2013-03-25 16:47:22 +02:00
										 |  |  |     scripts=() | 
					
						
							|  |  |  |     for file in $files | 
					
						
							|  |  |  |     do | 
					
						
							|  |  |  |         # - Strip the path | 
					
						
							|  |  |  |         # - Remove all scripts with a leading '_' | 
					
						
							|  |  |  |         # - PackagePlugin_.groovy -> PackagePlugin | 
					
						
							|  |  |  |         # - PackagePlugin         -> Package-Plugin | 
					
						
							|  |  |  |         # - Package-Plugin        -> package-plugin | 
					
						
							|  |  |  |         command=$(basename $file                              \
 | 
					
						
							|  |  |  |             | sed -E  -e 's/^_?([^_]+)_?.groovy/\1/'\
 | 
					
						
							|  |  |  |                       -e 's/([a-z])([A-Z])/\1-\2/g' \
 | 
					
						
							|  |  |  |             | tr "[:upper:]" "[:lower:]"            \
 | 
					
						
							|  |  |  |             | sort                                  \
 | 
					
						
							|  |  |  |             | uniq) | 
					
						
							|  |  |  |         scripts+=($command) | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |     echo $scripts | 
					
						
							| 
									
										
										
										
											2011-09-10 06:48:40 -04:00
										 |  |  | } | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | _grails() { | 
					
						
							|  |  |  |     if (( CURRENT == 2 )); then | 
					
						
							|  |  |  |         scripts=( $(_enumerateGrailsScripts) ) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         if [ ${#scripts} -ne 0 ]; | 
					
						
							|  |  |  |         then | 
					
						
							|  |  |  |             _multi_parts / scripts | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     _files | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | compdef _grails grails |