Implement 'flutter build target' completion
This commit is contained in:
parent
86d55972f5
commit
04a65a56de
125
src/_flutter
125
src/_flutter
|
@ -140,10 +140,7 @@ _flutter() {
|
||||||
&& ret=0
|
&& ret=0
|
||||||
;;
|
;;
|
||||||
(build)
|
(build)
|
||||||
_arguments \
|
_flutter_build && ret=0
|
||||||
'1: :_flutter_build_entities' \
|
|
||||||
'(- *)'{-h,--help}'[Print this usage information]' \
|
|
||||||
&& ret=0
|
|
||||||
;;
|
;;
|
||||||
(config)
|
(config)
|
||||||
_arguments \
|
_arguments \
|
||||||
|
@ -544,6 +541,124 @@ _flutter_root_commands() {
|
||||||
_describe -t commands 'command' commands "$@"
|
_describe -t commands 'command' commands "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(( $+functions[_flutter_build] )) ||
|
||||||
|
_flutter_build() {
|
||||||
|
local ret=1
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
'(- *)'{-h,--help}'[Print this usage information]' \
|
||||||
|
'1: :_flutter_build_entities' \
|
||||||
|
'*:: :->args' \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(args)
|
||||||
|
local opts=(
|
||||||
|
'(- *)'{-h,--help}'[Print this usage information]'
|
||||||
|
'(--debug --profile --release)--debug[Build a debug version of your app]'
|
||||||
|
'(--debug --profile --release)--profile[Build a version of your app specialized for performance profiling]'
|
||||||
|
'(--debug --profile --release)--release[Build a release version of your app(default mode)]'
|
||||||
|
'--no-tree-shake-icons[Not use Tree shake icon fonts]'
|
||||||
|
'--flavor[Build a custom app flavor as defined by platform-specific build setup]:flavor'
|
||||||
|
'--build-number[An identifier used as an internal version number]:build_number'
|
||||||
|
'(-o --output)'{-o,--output}'[The absolute path to the directory where the repository is generated]:dir:_files -/'
|
||||||
|
'(--no-pub)--pub[Run "flutter pub get" before executing this command]'
|
||||||
|
'(--pub)--no-pub[Do not run "flutter pub get" before executing this command]'
|
||||||
|
'--split-debug-info[Split debug info]: :_files -/'
|
||||||
|
'--obfuscate[Remove identifiers and replace them with randomized values for code obfuscation]'
|
||||||
|
'*--dart-define=[Additional key-value pairs that will be available as constants]:'
|
||||||
|
'--dart-define-from-file=[The path of a json format file where flutter define a global constant pool]: :_files -g "*.json"'
|
||||||
|
'--no-track-widget-creation[Not track widget creation locations]'
|
||||||
|
'(--no-null-assertions)--null-assertions[Perform additional null assertions on the boundaries of migrated and un-migrated code]'
|
||||||
|
'(--null-assertions)--no-null-assertions[Not perform additional null assertions on the boundaries of migrated and un-migrated code]'
|
||||||
|
|
||||||
|
)
|
||||||
|
case $words[1] in
|
||||||
|
(aar)
|
||||||
|
opts+=(
|
||||||
|
'--target-platform=[The target platform for which the project is compiled]: :(android-arm android-arm64 android-x86 android-x64)'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(apk|appbundle)
|
||||||
|
opts+=(
|
||||||
|
'--build-name=[A string used as the version number shown to users]:build_name'
|
||||||
|
'(--no-analyze-size)--analyze-size[Produce additional profile information for artifact output size]'
|
||||||
|
'(--analyze-size)--no-analyze-size[Not produce additional profile information for artifact output size]'
|
||||||
|
'--code-size-directory=[The location to write code size analysis files]: :_files -/'
|
||||||
|
\*{-P,--android-project-arg}'[Additioanl arguments specified as key=value that are passed to gradle -P option]:arg'
|
||||||
|
'--no-multidex[the app is not built with multidex support]'
|
||||||
|
'--ignore-deprecation[the app should ignore deprecation warnings and continue to build using deprecated APIs]'
|
||||||
|
'--split-per-abi[Split the APKs per ABIs]'
|
||||||
|
'--target-platform=[The target platform for which the project is compiled]: :(android-arm android-arm64 android-x86 android-x64)'
|
||||||
|
)
|
||||||
|
if [[ $words[1] == "appbundle" ]]; then
|
||||||
|
opts+=(
|
||||||
|
'--no-deferred-components[Disable building with deferred components]'
|
||||||
|
'--no-validate-deferred-components[Do not validate deferred component]'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
(bundle)
|
||||||
|
opts+=(
|
||||||
|
'--depfile[A file path where a depfile will be written]:depfile:_files'
|
||||||
|
'--target-platform=[The target platform for which the project is compiled]: :(android-arm android-arm64 android-x86 android-x64)'
|
||||||
|
'--asset-dir[The output directory for the kernel_blob.bin file]: :_files -/'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(fuchsia)
|
||||||
|
;;
|
||||||
|
(ios)
|
||||||
|
opts+=(
|
||||||
|
'--no-codesign[Do not codesign the application bundle]'
|
||||||
|
'--config-only[Update the project configuration without performing a build]'
|
||||||
|
'--simulator[Build for the iOS simulator instead of the device]'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(linux)
|
||||||
|
opts+=(
|
||||||
|
'--build-name=[A string used as the version number shown to users]:build_name'
|
||||||
|
'(--no-analyze-size)--analyze-size[Produce additional profile information for artifact output size]'
|
||||||
|
'(--analyze-size)--no-analyze-size[Not produce additional profile information for artifact output size]'
|
||||||
|
'--code-size-directory=[The location to write code size analysis files]: :_files -/'
|
||||||
|
\*{-P,--android-project-arg}'[Additioanl arguments specified as key=value that are passed to gradle -P option]:arg'
|
||||||
|
'--no-multidex[the app is not built with multidex support]'
|
||||||
|
'--ignore-deprecation[the app should ignore deprecation warnings and continue to build using deprecated APIs]'
|
||||||
|
'--split-per-abi[Split the APKs per ABIs]'
|
||||||
|
'--target-platform=[The target platform for which the project is compiled]: :(linux-arm64 linux-x64)'
|
||||||
|
'--target-sysroot=[The root filesystem path of target platform]: :_files -/'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(macos)
|
||||||
|
opts+=(
|
||||||
|
'--build-name=[A string used as the version number shown to users]:build_name'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(web)
|
||||||
|
opts+=(
|
||||||
|
'(--no-null-assertions)--null-assertions[Perform additional null assertions on the boundaries of migrated and un-migrated code]'
|
||||||
|
'(--null-assertions)--no-null-assertions[Not perform additional null assertions on the boundaries of migrated and un-migrated code]'
|
||||||
|
'--no-native-null-assertions[Disable additional runtime null checks in web applications]'
|
||||||
|
'--csp[Disable dynamic generation of code in the generated output]'
|
||||||
|
'(--no-source-maps)--source-maps[Generate a sourcemap file]'
|
||||||
|
'(--source-maps)--no-source-maps[Do not generate a sourcemap file]'
|
||||||
|
'--pwa-strategy=The caching strategy to be used by the PWA service worker: :(none offline-first)'
|
||||||
|
'--base-href[Overrides the href attribute of the base tag in web/index.html]'
|
||||||
|
'--dart2js-optimization=[Sets the optimization level used for Dart compilation to JavaScript]: :(O0 O1 O2 O3 O4)'
|
||||||
|
'--dump-info[Passes "--dump-info" to the JavaScript compiler]'
|
||||||
|
'--no-frequency-based-minification[Disables the frequency based minifier]'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(windows)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
_arguments $opts && ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
(( $+functions[_flutter_build_entities] )) ||
|
(( $+functions[_flutter_build_entities] )) ||
|
||||||
_flutter_build_entities() {
|
_flutter_build_entities() {
|
||||||
local -a entities=(
|
local -a entities=(
|
||||||
|
@ -555,8 +670,8 @@ _flutter_build_entities() {
|
||||||
"ios:Build an iOS application bundle (Mac OS X host only)."
|
"ios:Build an iOS application bundle (Mac OS X host only)."
|
||||||
"linux:Build a Linux desktop application."
|
"linux:Build a Linux desktop application."
|
||||||
"macos:Build a macOS desktop application."
|
"macos:Build a macOS desktop application."
|
||||||
|
"web:Build a web application bundle"
|
||||||
"windows:Build a Windows desktop application."
|
"windows:Build a Windows desktop application."
|
||||||
"winuwp:Build a Windows UWP desktop application."
|
|
||||||
)
|
)
|
||||||
_describe -t entities 'entity' entities "$@"
|
_describe -t entities 'entity' entities "$@"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue