c6e8c856 | _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 |
51736343 | files+=($dir/[^_]*.groovy) |
c6e8c856 | fi done # Don't try to basename () if [ ${#files} -eq 0 ]; then return fi # - Strip the path # - Remove all scripts with a leading '_' # - PackagePlugin_.groovy -> PackagePlugin # - PackagePlugin -> Package-Plugin # - Package-Plugin -> package-plugin basename $files \ | sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\ -e 's/([a-z])([A-Z])/\1-\2/g' \ | tr "[:upper:]" "[:lower:]" \ | sort \ | uniq } _grails() { if (( CURRENT == 2 )); then scripts=( $(_enumerateGrailsScripts) ) if [ ${#scripts} -ne 0 ]; then _multi_parts / scripts return fi fi _files } compdef _grails grails |