@@ -31,23 +31,24 @@ function __gradle-set-project-root-dir() {
31
31
32
32
__gradle-init-cache-dir () {
33
33
cache_dir=" $HOME /.gradle/completion"
34
- mkdir -p $cache_dir
34
+ mkdir -p " $cache_dir "
35
35
}
36
36
37
37
__gradle-set-build-file () {
38
38
# Look for default build script in the settings file (settings.gradle by default)
39
39
# Otherwise, default is the file 'build.gradle' in the current directory.
40
40
gradle_build_file=" $project_root_dir /build.gradle"
41
41
if [[ -f " $project_root_dir /settings.gradle" ]]; then
42
- local build_file_name=$( grep " ^rootProject\.buildFileName" " $project_root_dir /settings.gradle" \
42
+ local build_file_name
43
+ build_file_name=$( grep " ^rootProject\.buildFileName" " $project_root_dir /settings.gradle" \
43
44
| sed -n -e " s/rootProject\.buildFileName = [\'\" ]\(.*\)[\'\" ]/\1/p" )
44
45
gradle_build_file=" $project_root_dir /${build_file_name:- build.gradle} "
45
46
fi
46
47
}
47
48
48
49
__gradle-set-cache-name () {
49
50
# Cache name is constructed from the absolute path of the build file.
50
- cache_name=$( echo $gradle_build_file | sed -e ' s/\//_/g' )
51
+ cache_name=$( echo " $gradle_build_file " | sed -e ' s/\//_/g' )
51
52
}
52
53
53
54
__gradle-set-files-checksum () {
@@ -63,13 +64,14 @@ __gradle-set-files-checksum() {
63
64
64
65
__gradle-generate-script-cache () {
65
66
# Invalidate cache after 3 weeks by default
66
- local cache_ttl_mins=${GRADLE_CACHE_TTL_MINUTES:- 30240}
67
- local script_exclude_pattern=${GRADLE_COMPLETION_EXCLUDE_PATTERN:- " /(build|integTest|out)/" }
67
+ local cache_ttl_mins script_exclude_pattern gradle_build_scripts
68
+ cache_ttl_mins=${GRADLE_CACHE_TTL_MINUTES:- 30240}
69
+ script_exclude_pattern=${GRADLE_COMPLETION_EXCLUDE_PATTERN:- " /(build|integTest|out)/" }
68
70
69
- if [[ ! $( find $cache_dir /$cache_name -mmin -$cache_ttl_mins 2> /dev/null) ]]; then
71
+ if [[ ! $( find " $cache_dir /$cache_name " -mmin -" $cache_ttl_mins " 2> /dev/null) ]]; then
70
72
# Cache all Gradle scripts
71
- local gradle_build_scripts=$( find $project_root_dir -type f -name " *.gradle" -o -name " *.gradle.kts" 2> /dev/null | grep -E -v " $script_exclude_pattern " )
72
- printf " %s\n" " ${gradle_build_scripts[@]} " > $cache_dir /$cache_name
73
+ gradle_build_scripts=$( find " $project_root_dir " -type f -name " *.gradle" -o -name " *.gradle.kts" 2> /dev/null | grep -E -v " $script_exclude_pattern " )
74
+ printf " %s\n" " ${gradle_build_scripts[@]} " > " $cache_dir /$cache_name "
73
75
fi
74
76
}
75
77
@@ -179,10 +181,10 @@ __gradle-generate-tasks-cache() {
179
181
# Run gradle to retrieve possible tasks and cache.
180
182
# Reuse Gradle Daemon if IDLE but don't start a new one.
181
183
local gradle_tasks_output
182
- if [[ ! -z " $( $gradle_cmd --status 2> /dev/null | grep IDLE) " ]]; then
183
- gradle_tasks_output=" $( $gradle_cmd -b $gradle_build_file --daemon -q tasks --all) "
184
+ if [[ -n " $( " $gradle_cmd " --status 2> /dev/null | grep IDLE) " ]]; then
185
+ gradle_tasks_output=" $( " $gradle_cmd " -b " $gradle_build_file " --daemon -q tasks --all) "
184
186
else
185
- gradle_tasks_output=" $( $gradle_cmd -b $gradle_build_file --no-daemon -q tasks --all) "
187
+ gradle_tasks_output=" $( " $gradle_cmd " -b " $gradle_build_file " --no-daemon -q tasks --all) "
186
188
fi
187
189
local output_line
188
190
local task_description
@@ -209,12 +211,12 @@ __gradle-generate-tasks-cache() {
209
211
local -a implicit_tasks=()
210
212
implicit_tasks=($( comm -23 <( printf " %s\n" " ${subproject_tasks[@]} " | sort) <( printf " %s\n" " ${root_tasks[@]} " | sort) ) )
211
213
for task in $( printf " %s\n" " ${implicit_tasks[@]} " ) ; do
212
- gradle_all_tasks+=($task )
214
+ gradle_all_tasks+=(" $task " )
213
215
done
214
216
fi
215
217
216
- printf " %s\n" " ${gradle_all_tasks[@]} " > $cache_dir /$gradle_files_checksum
217
- echo $gradle_files_checksum > $cache_dir /$cache_name .md5
218
+ printf " %s\n" " ${gradle_all_tasks[@]} " > " $cache_dir /$gradle_files_checksum "
219
+ echo " $gradle_files_checksum " > " $cache_dir /$cache_name .md5"
218
220
}
219
221
220
222
__gradle-completion-init () {
@@ -263,20 +265,20 @@ _gradle() {
263
265
264
266
# The cache key is md5 sum of all gradle scripts, so it's valid if it exists.
265
267
if [[ -f $cache_dir /$cache_name .md5 ]]; then
266
- local cached_checksum=" $( cat $cache_dir /$cache_name .md5) "
268
+ local cached_checksum=" $( cat " $cache_dir /$cache_name .md5" ) "
267
269
local -a cached_tasks
268
270
if [[ -z $cur ]]; then
269
- cached_tasks=($( cat $cache_dir /$cached_checksum ) )
271
+ cached_tasks=($( cat " $cache_dir /$cached_checksum " ) )
270
272
else
271
- cached_tasks=($( grep " ^$cur " $cache_dir /$cached_checksum ) )
273
+ cached_tasks=($( grep " ^$cur " " $cache_dir /$cached_checksum " ) )
272
274
fi
273
275
COMPREPLY=($( compgen -W " ${cached_tasks[*]} " -- " $cur " ) )
274
276
else
275
277
__gradle-notify-tasks-cache-build
276
278
fi
277
279
278
280
# Regenerate tasks cache in the background
279
- if [[ $gradle_files_checksum != " $( cat $cache_dir /$cache_name .md5) " || ! -f $cache_dir /$gradle_files_checksum ]]; then
281
+ if [[ $gradle_files_checksum != " $( cat " $cache_dir /$cache_name .md5" ) " || ! -f " $cache_dir /$gradle_files_checksum " ]]; then
280
282
$( __gradle-generate-tasks-cache 1>&2 2> /dev/null & )
281
283
fi
282
284
else
0 commit comments