]> git.rmz.io Git - dotfiles.git/blob - zsh/plugins/grails/grails.plugin.zsh
merge oh-my-zsh into subdir
[dotfiles.git] / zsh / plugins / grails / grails.plugin.zsh
1 _enumerateGrailsScripts() {
2 # Default directoryies
3 directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts)
4
5 # Check all of the plugins directories, if they exist
6 if [ -d plugins ]
7 then
8 directories+=(plugins/*/scripts)
9 fi
10
11 # Enumerate all of the Groovy files
12 files=()
13 for dir in $directories;
14 do
15 if [ -d $dir ]
16 then
17 files+=($dir/[^_]*.groovy)
18 fi
19 done
20
21 # Don't try to basename ()
22 if [ ${#files} -eq 0 ];
23 then
24 return
25 fi
26
27 # - Strip the path
28 # - Remove all scripts with a leading '_'
29 # - PackagePlugin_.groovy -> PackagePlugin
30 # - PackagePlugin -> Package-Plugin
31 # - Package-Plugin -> package-plugin
32 basename $files \
33 | sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\
34 -e 's/([a-z])([A-Z])/\1-\2/g' \
35 | tr "[:upper:]" "[:lower:]" \
36 | sort \
37 | uniq
38 }
39
40 _grails() {
41 if (( CURRENT == 2 )); then
42 scripts=( $(_enumerateGrailsScripts) )
43
44 if [ ${#scripts} -ne 0 ];
45 then
46 _multi_parts / scripts
47 return
48 fi
49 fi
50
51 _files
52 }
53
54 compdef _grails grails