浏览代码

Merge pull request #595 from zachriggle/grails-plugin

Grails plugin
Robby Russell 13 年之前
父节点
当前提交
cceb387e0b
共有 1 个文件被更改,包括 54 次插入0 次删除
  1. 54 0
      plugins/grails/grails.plugin.zsh

+ 54 - 0
plugins/grails/grails.plugin.zsh

@@ -0,0 +1,54 @@
+_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                             \
+        | 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