fish-shell/share/completions/gradle.fish
Johannes Altmanninger 49c5f96470 Use set -l to force use of a local variable
Bare set overwrites a global/universal variable if it exists.
2020-05-15 08:25:07 +02:00

278 lines
12 KiB
Fish

# Gradle is a build system.
# See: https://gradle.org
function __fish_gradle_contains_build_file
test -f build.gradle -o -f build.gradle.kts
end
function __fish_gradle_create_completion_cache_file
set -l xdg_cache_home $XDG_CACHE_HOME
# Set up cache directory
if test -z "$xdg_cache_home"
set xdg_cache_home $HOME/.cache
end
mkdir -m 700 -p "$xdg_cache_home/gradle-completions"
set -l md5Hash (__fish_md5 -s $argv[1] | string replace -r '.* = ' '')
string trim -- "$xdg_cache_home/gradle-completions/$md5Hash"
end
##############################
# Configure Tasks Completion #
##############################
# Outside of a Project
function __fish_gradle_get_default_task_completion
if __fish_gradle_contains_build_file
return
end
printf '%s\t%s\n' \
"buildEnvironment" "Display buildscript dependencies" \
"components" "Display components" \
"dependencies" "Display dependencies" \
"dependencyInsight" "Display insight of a given dependency" \
"dependentComponents" "Display the dependent components" \
"help" "Display help message" \
"init" "Initialize new Gradle project" \
"model" "Display configuration model" \
"projects" "Display sub-projects" \
"properties" "Display properties" \
"tasks" "Display tasks" \
"wrapper" "Generate Gradle wrapper files"
end
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--exclusive \
--arguments "(__fish_gradle_get_default_task_completion)"
# Inside of a Project
function __fish_gradle_get_task_completion
if not __fish_gradle_contains_build_file
return
end
set -l gradle_cache_file (__fish_gradle_create_completion_cache_file "{$PWD}-tasks")
if not test -f "$gradle_cache_file" -a -s "$gradle_cache_file"
command gradle -q tasks --all 2>/dev/null | string match --regex '^[a-z][A-z:]+.*' | string replace ' - ' \t >"$gradle_cache_file"
end
# return possible tasks
string trim -- <"$gradle_cache_file"
end
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--condition "__fish_gradle_contains_build_file" \
--exclusive \
--arguments "(__fish_gradle_get_task_completion)"
###############################
# Configure Option Completion #
###############################
function __fish_gradle_get_console_completion
printf '%s\t%s\n' \
"auto" "Use 'rich' in console otherwise 'plain'" \
"plain" "Disable color and rich output" \
"rich" "Enable color and rich output" \
"verbose" "Enable color, rich output, output task names and outcomes at the lifecycle log level"
end
function __fish_gradle_get_property_completion
printf '%s\t%s\n' \
"org.gradle.cache.reserved.mb" "Reserve Gradle Daemon memory for operations" \
"org.gradle.caching" "Enable Gradle build cache" \
"org.gradle.console" "Set type of console output to generate (plain, auto, rich, verbose)" \
"org.gradle.daemon.debug" "Enable debug Gradle Daemon" \
"org.gradle.daemon.idletimeout" "Kill Gradle Daemon after" \
"org.gradle.debug" "Enable debug Gradle Client" \
"org.gradle.jvmargs" "Set JVM arguments" \
"org.gradle.java.home" "Set JDK home dir" \
"org.gradle.logging.level" "Set default Gradle log level (quiet, warn, lifecycle, info, debug)" \
"org.gradle.parallel" "Enable parallel project builds (incubating)" \
"org.gradle.priority" "Set priority for Gradle worker processes (low, normal)" \
"org.gradle.warning.mode" "Set types of warnings to log (all, summary, fail, none)" \
"org.gradle.workers.max" "Set the number of workers Gradle is allowed to use"
end
function __fish_gradle_get_priority_completion
printf '%s\t%s\n' \
"normal" "Default process priority" \
"low" "Low process priority"
end
function __fish_gradle_get_warning_mode_completion
printf '%s\t%s\n' \
"all" "Log all warnings" \
"summary" "Suppress all warnings, log a summary at the end" \
"fail" "Log all warnings and fail the build if there are any" \
"none" "Suppress all warnings, including the summary at the end"
end
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'help' \
--short-option 'h' --short-option '?' \
--description 'Show this help message'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-rebuild' \
--short-option 'a' \
--description 'Do not rebuild project dependencies'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'build-file' \
--short-option 'b' \
--require-parameter \
--description 'Specify build file'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'build-cache' \
--description 'Enable Gradle build cache'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'settings-file' \
--short-option 'c' \
--require-parameter \
--description 'Specify settings file'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'configure-on-demand' \
--description 'Configure necessary projects only [incubating]'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'console' \
--exclusive \
--description 'Specify type of console output' \
--arguments "(__fish_gradle_get_console_completion)"
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'continue' \
--description 'Continue task execution after task failures'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'system-prop' \
--short-option 'D' \
--exclusive \
--description 'Set system property of the JVM (e.g. -Dmyprop=myvalue)' \
--arguments "(__fish_gradle_get_property_completion)"
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'debug' \
--short-option 'd' \
--description 'Log in debug mode (incl. normal stacktrace)'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'daemon' \
--description 'Uses Gradle Daemon'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'foreground' \
--description 'Start Gradle Daemon in foreground'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'gradle-user-home' \
--short-option 'g' \
--require-parameter \
--description 'Specify gradle user home directory'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'init-script' \
--short-option 'I' \
--require-parameter \
--description 'Specify initialization script'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'info' \
--short-option 'i' \
--description 'Info log level'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'include-build' \
--require-parameter \
--description 'Include specified build in composite'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'dry-run' \
--short-option 'm' \
--description 'Run builds with all task actions disabled'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'max-workers' \
--exclusive \
--description 'Configure number of concurrent workers'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-build-cache' \
--description 'Disable Gradle build cache'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-configure-on-demand' \
--description 'Disable use of configuration on demand [incubating]'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-daemon' \
--description 'Disable Gradle daemon'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-parallel' \
--description 'Disable parallel execution'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'no-scan' \
--description 'Disable creation of build scan'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'offline' \
--description 'Execute build without accessing network resources'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'project-prop' \
--short-option 'P' \
--exclusive \
--description 'Set project property for build script (e.g. -Pmyprop=myvalue)'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'project-dir' \
--short-option 'p' \
--require-parameter \
--description 'Specify start directory for Gradle'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'parallel' \
--description 'Build projects in parallel'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'priority' \
--exclusive \
--description 'Specify scheduling priority for the Gradle daemon and all processes launched by it' \
--arguments "(__fish_gradle_get_priority_completion)"
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'profile' \
--description 'Profile build execution time and generate report'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'project-cache-dir' \
--require-parameter \
--description 'Specify cache directory'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'quiet' \
--short-option 'q' \
--description 'Error log level'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'refresh-dependencies' \
--description 'Refresh dependencies state'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'rerun-tasks' \
--description 'Ignore previously cached task results'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'full-stacktrace' \
--short-option 'S' \
--description 'Print out full stacktrace'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'stacktrace' \
--short-option 's' \
--description 'Print out stacktrace'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'scan' \
--description 'Creates build scan'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'status' \
--description 'Show status of Gradle Daemon(s)'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'stop' \
--description 'Stop Gradle Daemon(s)'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'continuous' \
--short-option 't' \
--description 'Enable continuous build'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'update-locks' \
--description 'Perform a partial update of the dependency lock [incubating]'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'version' \
--short-option 'v' \
--description 'Print version info.'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'warn' \
--short-option 'w' \
--description 'Warn log level'
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'warning-mode' \
--description 'Specify warn mode' \
--arguments "(__fish_gradle_get_warning_mode_completion)"
complete --command 'gw' --command 'gradle' --command 'gradlew' \
--long-option 'write-locks' \
--description 'Persists dependency resolution for locked configurations [incubating]'