summaryrefslogtreecommitdiff
path: root/plugins/gradle
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gradle')
-rw-r--r--plugins/gradle/README.md23
-rw-r--r--plugins/gradle/gradle.plugin.zsh18
2 files changed, 38 insertions, 3 deletions
diff --git a/plugins/gradle/README.md b/plugins/gradle/README.md
new file mode 100644
index 000000000..215503c81
--- /dev/null
+++ b/plugins/gradle/README.md
@@ -0,0 +1,23 @@
+## Gradle Plugin
+
+This plugin adds completions and aliases for [Gradle](https://gradle.org/).
+
+To use it, add `gradle` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... gradle)
+```
+
+## Usage
+
+This plugin creates an alias `gradle` which is used to determine whether the current working directory has a gradlew file. If gradlew is present it will be used otherwise `gradle` is used directly. Gradle tasks can be executed directly without regard for whether it is `gradle` or `gradlew`
+
+Examples:
+```zsh
+gradle test
+gradle build
+```
+
+## Completion
+
+The completion provided for this plugin caches the parsed tasks into a file named `.gradletasknamecache` in the current working directory, so you might want to add that to your `.gitignore` file so that it's not accidentally committed.
diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh
index 0adc04a13..8d578e27b 100644
--- a/plugins/gradle/gradle.plugin.zsh
+++ b/plugins/gradle/gradle.plugin.zsh
@@ -1,6 +1,18 @@
##############################################################################
# A descriptive listing of core Gradle commands
############################################################################
+
+gradle-or-gradlew() {
+ if [ -f ./gradlew ] ; then
+ echo "executing gradlew instead of gradle";
+ ./gradlew "$@";
+ else
+ gradle "$@";
+ fi
+}
+
+alias gradle=gradle-or-gradlew;
+
function _gradle_core_commands() {
local ret=1 state
_arguments ':subcommand:->subcommand' && ret=0
@@ -88,7 +100,7 @@ function _gradle_arguments() {
# and if so, regenerate the .gradle_tasks cache file
############################################################################
_gradle_does_task_list_need_generating () {
- [[ ! -f .gradletasknamecache ]] || [[ build.gradle -nt .gradletasknamecache ]]
+ [[ ! -f .gradletasknamecache ]] || [[ build.gradle -nt .gradletasknamecache || build.gradle.kts -nt .gradletasknamecache ]]
}
##############
@@ -144,7 +156,7 @@ _gradle_parse_and_extract_tasks () {
# Discover the gradle tasks by running "gradle tasks --all"
############################################################################
_gradle_tasks () {
- if [[ -f build.gradle ]]; then
+ if [[ -f build.gradle || -f build.gradle.kts || -f settings.gradle || -f settings.gradle.kts ]]; then
_gradle_arguments
if _gradle_does_task_list_need_generating; then
_gradle_parse_and_extract_tasks "$(gradle tasks --all)" > .gradletasknamecache
@@ -154,7 +166,7 @@ _gradle_tasks () {
}
_gradlew_tasks () {
- if [[ -f build.gradle ]]; then
+ if [[ -f build.gradle || -f build.gradle.kts || -f settings.gradle || -f settings.gradle.kts ]]; then
_gradle_arguments
if _gradle_does_task_list_need_generating; then
_gradle_parse_and_extract_tasks "$(./gradlew tasks --all)" > .gradletasknamecache