1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- if [[ ! -d $GRAILS_HOME/scripts ]];
- then
- echo "$0:"
- echo "Please set \$GRAILS_HOME to use the 'grails' plugin, and ensure that \$GRAILS_HOME/scripts exists"
- fi
- _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
- files+=($dir/*.groovy)
- 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 \
- | grep -vE -e '^_' \
- | 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
|