mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-29 05:03:46 +08:00
76bde0839f
The regex for task names was a bit off, so - include uppercase letters, to support `TMessagesProj:assembleMiniRelease` - don't include characters like `[]` (which happen to lie between ASCII `A` and `z`) - include numbers, which are presumably valid in an identifier - explicitly include the optional ` - ` bit in the regex
279 lines
11 KiB
Fish
279 lines
11 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-Za-z0-9:-]+(?: - .*)?$' | 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]'
|