2020-03-10 01:43:20 +08:00
|
|
|
# Looks for a gradlew file in the current working directory
|
|
|
|
# or any of its parent directories, and executes it if found.
|
|
|
|
# Otherwise it will call gradle directly.
|
|
|
|
function gradle-or-gradlew() {
|
|
|
|
# find project root
|
|
|
|
# taken from https://github.com/gradle/gradle-completion
|
|
|
|
local dir="$PWD" project_root="$PWD"
|
|
|
|
while [[ "$dir" != / ]]; do
|
|
|
|
if [[ -f "$dir/settings.gradle" || -f "$dir/settings.gradle.kts" || -f "$dir/gradlew" ]]; then
|
|
|
|
project_root="$dir"
|
|
|
|
break
|
2011-06-15 05:01:28 +08:00
|
|
|
fi
|
2020-03-10 01:43:20 +08:00
|
|
|
dir="${dir:h}"
|
|
|
|
done
|
|
|
|
|
|
|
|
# if gradlew found, run it instead of gradle
|
|
|
|
if [[ -f "$project_root/gradlew" ]]; then
|
|
|
|
echo "executing gradlew instead of gradle"
|
|
|
|
"$project_root/gradlew" "$@"
|
|
|
|
else
|
|
|
|
command gradle "$@"
|
2011-06-15 05:01:28 +08:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-03-10 01:43:20 +08:00
|
|
|
alias gradle=gradle-or-gradlew
|
|
|
|
compdef _gradle gradle-or-gradlew
|