author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sat, 25 Feb 2017 21:44:22 +0200 | |
changeset 839 | e22ea617339d |
parent 835 | b2e3e02b9259 |
child 840 | 92bd6fcf51da |
permissions | -rw-r--r-- |
643 | 1 |
# -*- mode: sh; sh-shell-file: bash -*- |
2 |
||
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
3 |
_gradle_cmd() |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
4 |
{ |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
5 |
for ((i = $COMP_CWORD - 1; i > 0; i -= 1)); do |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
6 |
case "${COMP_WORDS[i]}" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
7 |
-*) continue ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
8 |
*" "*) continue ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
9 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
10 |
echo "${COMP_WORDS[i]}" |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
11 |
return |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
12 |
done |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
13 |
} |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
14 |
|
643 | 15 |
_gradle() |
16 |
{ |
|
734 | 17 |
local _opts="-? -h --help -A --dep-tasks -C --cache -D --system-prop -I --init-script -P --project-prop -S --full-stacktrace -a --no-rebuild --all \ |
645
51f6d81be3da
Update options according to "gradle --help" with v1.4.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
644
diff
changeset
|
18 |
-b --build-file -c --settings-file -d --debug -e --embedded -g --gradle-user-home --gui -i --info -m --dry-run --no-opt -p --project-dir \ |
51f6d81be3da
Update options according to "gradle --help" with v1.4.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
644
diff
changeset
|
19 |
-q --quiet -r --properties -s --stacktrace -t --tasks -u --no-search-upward -v --version -x --exclude-task \ |
51f6d81be3da
Update options according to "gradle --help" with v1.4.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
644
diff
changeset
|
20 |
--continue --daemon --foreground --no-color --no-daemon --offline --parallel --parallel-threads --project-cache-dir --recompile-scripts --refresh --refresh-dependencies \ |
51f6d81be3da
Update options according to "gradle --help" with v1.4.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
644
diff
changeset
|
21 |
--rerun-tasks --stop" |
833 | 22 |
local _help_cmds='components dependencies dependencyInsight buildEnvironment help model projects properties tasks wrapper' |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
23 |
local _java_cmds='assemble build buildDependents buildNeeded classes compileJava processResources cleanTest jar testClasses compileTestJava processTestResources javadoc check test uploadArchives' |
734 | 24 |
local _application_cmds='run startScripts installApp distZip distTar' |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
25 |
local _other_cmd='clean init install interactive' |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
26 |
declare -a _extra |
734 | 27 |
local cur prev |
28 |
cur=${COMP_WORDS[COMP_CWORD]} |
|
29 |
[[ $COMP_CWORD != 0 ]] && prev=${COMP_WORDS[COMP_CWORD-1]} |
|
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
30 |
|
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
31 |
# Perform default option completion for command. |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
32 |
if [[ -z "$curr" ]]; then |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
33 |
case "$prev" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
34 |
help) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
35 |
COMPREPLY=( --task ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
36 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
37 |
init) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
38 |
COMPREPLY=( --type ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
39 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
40 |
wrapper) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
41 |
COMPREPLY=( --gradle-version ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
42 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
43 |
dependencies) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
44 |
COMPREPLY=( --configuration ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
45 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
46 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
47 |
fi |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
48 |
|
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
49 |
# Add or perform command specific completion. |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
50 |
local cmd="$(_gradle_cmd)" |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
51 |
case "$cmd" in |
829
ccd4c8b35330
Improve completion for help task.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
827
diff
changeset
|
52 |
help) |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
53 |
case "$prev" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
54 |
--task) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
55 |
COMPREPLY=( $(compgen -W '$_help_cmds $_java_cmds $_application_cmds $_other_cmd' -- $cur) ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
56 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
57 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
58 |
_extra+=( --task ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
59 |
;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
60 |
init) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
61 |
case "$prev" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
62 |
--type) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
63 |
COMPREPLY=( $(compgen -W "basic groovy-library java-library pom scala-library" -- "$cur") ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
64 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
65 |
--test-framework) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
66 |
COMPREPLY=( $(compgen -W "spock testng" -- "$cur") ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
67 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
68 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
69 |
_extra+=( --type --test-framework ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
70 |
;; |
833 | 71 |
wrapper) |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
72 |
_extra+=( --gradle-version ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
73 |
;; |
835
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
74 |
dependencies) |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
75 |
case "$prev" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
76 |
--configuration) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
77 |
local _configs="archives - Configuration for archive artifacts. |
835
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
78 |
compile - Compile time dependencies. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
79 |
compileClasspath - Compile classpath, used when compiling source. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
80 |
compileOnly - Compile time only dependencies, not used at runtime. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
81 |
default - Dependencies required by this project at runtime. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
82 |
optional - |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
83 |
provided - |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
84 |
runtime - Runtime dependencies for source set 'main'. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
85 |
testCompile - Dependencies for source set 'test'. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
86 |
testCompileClasspath - Compile classpath for source set 'test'. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
87 |
testCompileOnly - Compile dependencies for source set 'test'. |
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
88 |
testRuntime - Runtime dependencies for source set 'test'." |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
89 |
local IFS=$'\n' |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
90 |
COMPREPLY=( $(compgen -W '${_configs}' -- "$cur") ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
91 |
if [[ ${#COMPREPLY[@]} -le 1 ]]; then |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
92 |
COMPREPLY=( ${COMPREPLY[0]%% *-*} ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
93 |
fi |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
94 |
return ;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
95 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
96 |
_extra+=( --configuration ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
97 |
;; |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
98 |
esac |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
99 |
|
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
100 |
# Perform generic completion. |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
101 |
case "$prev" in |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
102 |
-I|--init-script|-b|--build-file|-c|--settings-file|-e|--embedded) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
103 |
COMPREPLY=( $(compgen -f -- "$cur") ) |
835
b2e3e02b9259
Completion for "dependencies --configuration".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
833
diff
changeset
|
104 |
return ;; |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
105 |
-g|--gradle-user-home|-p|--project-dir|--project-cache-dir) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
106 |
COMPREPLY=( $(compgen -d -- "$cur") ) |
829
ccd4c8b35330
Improve completion for help task.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
827
diff
changeset
|
107 |
return ;; |
734 | 108 |
esac |
839
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
109 |
COMPREPLY=( $(compgen -W '$_extra $_opts $_help_cmds $_java_cmds $_application_cmds $_other_cmd' -- $cur) ) |
e22ea617339d
Add command sensitive completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
835
diff
changeset
|
110 |
compopt +o nospace |
643 | 111 |
} && |
832
100b1ed59c5c
Add ./gradlew for completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
829
diff
changeset
|
112 |
complete -F _gradle gradle ./gradlew |