]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/plugins/grails/grails.plugin.zsh
...
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / plugins / grails / grails.plugin.zsh
1 _enumerateGrailsScripts() {
2     # Default directories
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     scripts=()
28     for file in $files
29     do
30         # - Strip the path
31         # - Remove all scripts with a leading '_'
32         # - PackagePlugin_.groovy -> PackagePlugin
33         # - PackagePlugin         -> Package-Plugin
34         # - Package-Plugin        -> package-plugin
35         command=$(basename $file                              \
36             | sed -E  -e 's/^_?([^_]+)_?.groovy/\1/'\
37                       -e 's/([a-z])([A-Z])/\1-\2/g' \
38             | tr "[:upper:]" "[:lower:]"            \
39             | sort                                  \
40             | uniq)
41         scripts+=($command)
42     done
43     echo $scripts
44 }
45  
46 _grails() {
47     if (( CURRENT == 2 )); then
48         scripts=( $(_enumerateGrailsScripts) )
49         
50         if [ ${#scripts} -ne 0 ];
51         then
52             _multi_parts / scripts
53             return
54         fi
55     fi
56     
57     _files
58 }
59  
60 compdef _grails grails