plugins/grails/grails.plugin.zsh
c6e8c856
 
 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