From fdabb372b9a9412d3644bbc4df4fe4505049ce14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Natalie=20Klestrup=20R=C3=B6ijezon?= Date: Tue, 5 Nov 2024 12:27:17 +0100 Subject: [PATCH 1/5] Fix helm-sys rebuilding itself on no-op changes (#330) --- rust/helm-sys/build.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust/helm-sys/build.rs b/rust/helm-sys/build.rs index 7b5546d8..31c57647 100644 --- a/rust/helm-sys/build.rs +++ b/rust/helm-sys/build.rs @@ -55,7 +55,12 @@ fn main() { let bindings = bindgen::builder() .header(build_path.join("libgo-helm-wrapper.h").to_str().unwrap()) - .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) + .parse_callbacks(Box::new( + bindgen::CargoCallbacks::new() + // libgo-helm-wrapper.h will *always* just have been rebuilt here by the gobuild above + // (and, conversely, if the gobuild *has* been rebuilt then we'll already be rebuilding the crate anyway) + .rerun_on_header_files(false), + )) .generate() .expect("Failed to generate Rust bindings from Go header file"); From 20b99d1ac5bf498663c9da4eea2ef6ad2810e33e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Natalie=20Klestrup=20R=C3=B6ijezon?= Date: Tue, 5 Nov 2024 12:27:31 +0100 Subject: [PATCH 2/5] Update Nix dependencies to accomodate for the current MSRV (#329) --- Cargo.nix | 81 +++++++++++++++++++++--------------------------- nix/sources.json | 18 +++++------ 2 files changed, 44 insertions(+), 55 deletions(-) diff --git a/Cargo.nix b/Cargo.nix index f0436bac..0439afdf 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -14770,52 +14770,41 @@ rec { testPostRun ]); in - pkgs.runCommand "run-tests-${testCrate.name}" - { - inherit testCrateFlags; - buildInputs = testInputs; - } '' - set -e - - export RUST_BACKTRACE=1 - - # recreate a file hierarchy as when running tests with cargo - - # the source for test data - # It's necessary to locate the source in $NIX_BUILD_TOP/source/ - # instead of $NIX_BUILD_TOP/ - # because we compiled those test binaries in the former and not the latter. - # So all paths will expect source tree to be there and not in the build top directly. - # For example: $NIX_BUILD_TOP := /build in general, if you ask yourself. - # NOTE: There could be edge cases if `crate.sourceRoot` does exist but - # it's very hard to reason about them. - # Open a bug if you run into this! - mkdir -p source/ - cd source/ - - ${pkgs.buildPackages.xorg.lndir}/bin/lndir ${crate.src} - - # build outputs - testRoot=target/debug - mkdir -p $testRoot - - # executables of the crate - # we copy to prevent std::env::current_exe() to resolve to a store location - for i in ${crate}/bin/*; do - cp "$i" "$testRoot" - done - chmod +w -R . - - # test harness executables are suffixed with a hash, like cargo does - # this allows to prevent name collision with the main - # executables of the crate - hash=$(basename $out) - for file in ${drv}/tests/*; do - f=$testRoot/$(basename $file)-$hash - cp $file $f - ${testCommand} - done - ''; + pkgs.stdenvNoCC.mkDerivation { + name = "run-tests-${testCrate.name}"; + + inherit (crate) src; + + inherit testCrateFlags; + + buildInputs = testInputs; + + buildPhase = '' + set -e + export RUST_BACKTRACE=1 + + # build outputs + testRoot=target/debug + mkdir -p $testRoot + + # executables of the crate + # we copy to prevent std::env::current_exe() to resolve to a store location + for i in ${crate}/bin/*; do + cp "$i" "$testRoot" + done + chmod +w -R . + + # test harness executables are suffixed with a hash, like cargo does + # this allows to prevent name collision with the main + # executables of the crate + hash=$(basename $out) + for file in ${drv}/tests/*; do + f=$testRoot/$(basename $file)-$hash + cp $file $f + ${testCommand} + done + ''; + }; in pkgs.runCommand "${crate.name}-linked" { diff --git a/nix/sources.json b/nix/sources.json index 74ab9a47..b1071336 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -5,10 +5,10 @@ "homepage": "", "owner": "kolloch", "repo": "crate2nix", - "rev": "a6ca1e58132bab26fc08572f22a34bbb86f4d91d", - "sha256": "009m6xxz5ckq4is4rlwsmxyb09dap49yzxm34qc0pnvwvlklhx9g", + "rev": "151122427d030874ebef3517cda766a6984e6ed6", + "sha256": "0clqy88nhd0w316957scnczzwrklazkfxbycxf0h17z7jrw1px6a", "type": "tarball", - "url": "https://github.com/kolloch/crate2nix/archive/a6ca1e58132bab26fc08572f22a34bbb86f4d91d.tar.gz", + "url": "https://github.com/kolloch/crate2nix/archive/151122427d030874ebef3517cda766a6984e6ed6.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "gomod2nix": { @@ -17,10 +17,10 @@ "homepage": "", "owner": "nix-community", "repo": "gomod2nix", - "rev": "7b8ef0d5fdc09b3a7acb27f1e6c168888947f364", - "sha256": "0bcgv4zc6121y030mnqn3s0vw82m6n19rwxnm47k2ys2v5arr36c", + "rev": "5d387097aa716f35dd99d848dc26d8d5b62a104c", + "sha256": "1mdwyjz43nnh7gfq4rc54kql6fy65hw17w0p4gwklnfqciwrkax2", "type": "tarball", - "url": "https://github.com/nix-community/gomod2nix/archive/7b8ef0d5fdc09b3a7acb27f1e6c168888947f364.tar.gz", + "url": "https://github.com/nix-community/gomod2nix/archive/5d387097aa716f35dd99d848dc26d8d5b62a104c.tar.gz", "url_template": "https://github.com///archive/.tar.gz", "version": "1.5.0" }, @@ -42,10 +42,10 @@ "homepage": "", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2122a9b35b35719ad9a395fe783eabb092df01b1", - "sha256": "0n2mfyakhpirbrv06qs5rd174f7nmnjmy7vkd1dim7sh340711fd", + "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", + "sha256": "0ha2a6j3y4dbclcw7s6p473fcrzxhn4yap4wbm8s4jg7v6wal0ph", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/2122a9b35b35719ad9a395fe783eabb092df01b1.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } From 885b3472e65454a5e6994aa3956e8c74711bea28 Mon Sep 17 00:00:00 2001 From: Techassi Date: Mon, 18 Nov 2024 17:05:32 +0100 Subject: [PATCH 3/5] chore: Release stackablectl-24.11.0 (#334) * chore: Migrate pre-commit config * chore: Bump version in Cargo.toml * chore: Update changelog * ci(pre-commit): Install nix and use stackabletech/actions/run-pre-commit --- .github/workflows/pr_pre-commit.yml | 29 +++++------------------------ .pre-commit-config.yaml | 12 ++++++------ Cargo.lock | 2 +- Cargo.nix | 2 +- extra/man/stackablectl.1 | 4 ++-- rust/stackablectl/CHANGELOG.md | 2 ++ rust/stackablectl/Cargo.toml | 2 +- 7 files changed, 18 insertions(+), 35 deletions(-) diff --git a/.github/workflows/pr_pre-commit.yml b/.github/workflows/pr_pre-commit.yml index 8a530e2d..fca98d91 100644 --- a/.github/workflows/pr_pre-commit.yml +++ b/.github/workflows/pr_pre-commit.yml @@ -16,29 +16,10 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 + - uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 #v30 with: - python-version: '3.12' - - uses: dtolnay/rust-toolchain@master + github_access_token: ${{ secrets.GITHUB_TOKEN }} + - uses: stackabletech/actions/run-pre-commit@9bd13255f286e4b7a654617268abe1b2f37c3e0a # v0.3.0 with: - toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - components: rustfmt,clippy - - name: Setup Hadolint - shell: bash - run: | - set -euo pipefail - - LOCATION_DIR="$HOME/.local/bin" - LOCATION_BIN="$LOCATION_DIR/hadolint" - - SYSTEM=$(uname -s) - ARCH=$(uname -m) - - mkdir -p "$LOCATION_DIR" - curl -sL -o "${LOCATION_BIN}" "https://github.com/hadolint/hadolint/releases/download/${{ env.HADOLINT_VERSION }}/hadolint-$SYSTEM-$ARCH" - chmod 700 "${LOCATION_BIN}" - - echo "$LOCATION_DIR" >> "$GITHUB_PATH" - - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 - with: - extra_args: "--from-ref ${{ github.event.pull_request.base.sha }} --to-ref ${{ github.event.pull_request.head.sha }}" + rust: ${{ env.RUST_TOOLCHAIN_VERSION }} + hadolint: ${{ env.HADOLINT_VERSION }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5294b678..541a380d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -58,7 +58,7 @@ repos: files: ^rust/stackablectl/ language: system entry: cargo xtask gen-man - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false - id: gen-comp @@ -66,7 +66,7 @@ repos: files: ^rust/stackablectl/ language: system entry: cargo xtask gen-comp - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false - id: gen-openapi @@ -74,7 +74,7 @@ repos: files: ^web/ language: system entry: cargo xtask gen-openapi - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false - id: gen-ctl-readme @@ -82,7 +82,7 @@ repos: files: ^rust/stackablectl/ language: system entry: cargo xtask gen-ctl-readme - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false - id: gen-docs @@ -90,7 +90,7 @@ repos: files: ^rust/stackablectl/ language: system entry: cargo xtask gen-docs - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false - id: gen-cargo-nix @@ -98,5 +98,5 @@ repos: files: ^Cargo\.lock|go\.mod$ language: system entry: make regenerate-nix - stages: [commit, merge-commit, manual] + stages: [pre-commit, pre-merge-commit, manual] pass_filenames: false diff --git a/Cargo.lock b/Cargo.lock index 8da4c06e..a36b2006 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3097,7 +3097,7 @@ dependencies = [ [[package]] name = "stackablectl" -version = "24.7.1" +version = "24.11.0" dependencies = [ "clap", "clap_complete", diff --git a/Cargo.nix b/Cargo.nix index 0439afdf..5c0526ca 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -9929,7 +9929,7 @@ rec { }; "stackablectl" = rec { crateName = "stackablectl"; - version = "24.7.1"; + version = "24.11.0"; edition = "2021"; crateBin = [ { diff --git a/extra/man/stackablectl.1 b/extra/man/stackablectl.1 index 880a1236..1d6db3d0 100644 --- a/extra/man/stackablectl.1 +++ b/extra/man/stackablectl.1 @@ -1,6 +1,6 @@ .ie \n(.g .ds Aq \(aq .el .ds Aq ' -.TH stackablectl 1 "stackablectl 24.7.1" +.TH stackablectl 1 "stackablectl 24.11.0" .SH NAME stackablectl \- Command line tool to interact with the Stackable Data Platform .SH SYNOPSIS @@ -98,6 +98,6 @@ EXPERIMENTAL: Launch a debug container for a Pod stackablectl\-help(1) Print this message or the help of the given subcommand(s) .SH VERSION -v24.7.1 +v24.11.0 .SH AUTHORS Stackable GmbH diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 391ddd06..0c724ac7 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [24.11.0] - 2024-11-18 + ### Changed - Bump Rust dependencies to fix critical vulnerability in `quinn-proto`, see diff --git a/rust/stackablectl/Cargo.toml b/rust/stackablectl/Cargo.toml index f6084a00..4c35f931 100644 --- a/rust/stackablectl/Cargo.toml +++ b/rust/stackablectl/Cargo.toml @@ -2,7 +2,7 @@ name = "stackablectl" description = "Command line tool to interact with the Stackable Data Platform" # See /Cargo.toml -version = "24.7.1" +version = "24.11.0" authors.workspace = true license.workspace = true edition.workspace = true From a60b677dee5da9d6ede9156d9bbedb47a921935a Mon Sep 17 00:00:00 2001 From: Nick <10092581+NickLarsenNZ@users.noreply.github.com> Date: Wed, 20 Nov 2024 23:47:26 +1300 Subject: [PATCH 4/5] feat: Add shell completions for Nushell and Elvish (#337) * feat(stackablectl): nushell completions * feat(stackablectl): elvish completions * chore(xtask): Add gen-all command * chore(stackablectl): update changelog * Apply suggestions from code review Co-authored-by: Techassi --------- Co-authored-by: Techassi --- .pre-commit-config.yaml | 1 + Cargo.lock | 12 + Cargo.nix | 38 + Cargo.toml | 1 + .../partials/commands/completions.adoc | 10 +- extra/completions/_stackablectl | 94 ++ extra/completions/stackablectl.bash | 328 +++++- extra/completions/stackablectl.elv | 982 ++++++++++++++++++ extra/completions/stackablectl.fish | 58 +- extra/completions/stackablectl.nu | 921 ++++++++++++++++ rust/stackablectl/CHANGELOG.md | 6 + rust/stackablectl/Cargo.toml | 1 + rust/stackablectl/src/cmds/completions.rs | 25 +- rust/xtask/Cargo.toml | 3 +- rust/xtask/src/completions.rs | 20 +- rust/xtask/src/main.rs | 9 + 16 files changed, 2477 insertions(+), 32 deletions(-) create mode 100644 extra/completions/stackablectl.elv create mode 100644 extra/completions/stackablectl.nu diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 541a380d..e82032b3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -40,6 +40,7 @@ repos: hooks: - id: shellcheck args: ["--severity=info"] + exclude: '^extra/completions/' - repo: https://github.com/rhysd/actionlint rev: 62dc61a45fc95efe8c800af7a557ab0b9165d63b # 1.7.1 diff --git a/Cargo.lock b/Cargo.lock index a36b2006..93467fc3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -540,6 +540,16 @@ dependencies = [ "clap", ] +[[package]] +name = "clap_complete_nushell" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "315902e790cc6e5ddd20cbd313c1d0d49db77f191e149f96397230fb82a17677" +dependencies = [ + "clap", + "clap_complete", +] + [[package]] name = "clap_derive" version = "4.5.13" @@ -3101,6 +3111,7 @@ version = "24.11.0" dependencies = [ "clap", "clap_complete", + "clap_complete_nushell", "comfy-table", "directories", "dotenvy", @@ -4199,6 +4210,7 @@ version = "0.0.0-dev" dependencies = [ "clap", "clap_complete", + "clap_complete_nushell", "clap_mangen", "once_cell", "regex", diff --git a/Cargo.nix b/Cargo.nix index 5c0526ca..54033886 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -1818,6 +1818,36 @@ rec { }; resolvedDefaultFeatures = [ "default" ]; }; + "clap_complete_nushell" = rec { + crateName = "clap_complete_nushell"; + version = "4.5.4"; + edition = "2021"; + sha256 = "0xvnl61gnc3j76b9y50y35zvg7fls30i7lyb43fmsvncj3kh4n9i"; + dependencies = [ + { + name = "clap"; + packageId = "clap"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "clap_complete"; + packageId = "clap_complete"; + } + ]; + devDependencies = [ + { + name = "clap"; + packageId = "clap"; + usesDefaultFeatures = false; + features = [ "std" "help" ]; + } + ]; + features = { + "unstable-shell-tests" = [ "dep:completest" "dep:completest-nu" ]; + }; + resolvedDefaultFeatures = [ "default" ]; + }; "clap_derive" = rec { crateName = "clap_derive"; version = "4.5.13"; @@ -9952,6 +9982,10 @@ rec { name = "clap_complete"; packageId = "clap_complete"; } + { + name = "clap_complete_nushell"; + packageId = "clap_complete_nushell"; + } { name = "comfy-table"; packageId = "comfy-table"; @@ -14464,6 +14498,10 @@ rec { name = "clap_complete"; packageId = "clap_complete"; } + { + name = "clap_complete_nushell"; + packageId = "clap_complete_nushell"; + } { name = "clap_mangen"; packageId = "clap_mangen"; diff --git a/Cargo.toml b/Cargo.toml index 8fb068cb..abace1de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ bindgen = "0.70.1" cc = "1.0.83" clap = { version = "4.5", features = ["derive", "env"] } clap_complete = "4.5" +clap_complete_nushell = "4.5" comfy-table = { version = "7.1", features = ["custom_styling"] } directories = "5.0" dotenvy = "0.15" diff --git a/docs/modules/stackablectl/partials/commands/completions.adoc b/docs/modules/stackablectl/partials/commands/completions.adoc index 256b8481..e660a79d 100644 --- a/docs/modules/stackablectl/partials/commands/completions.adoc +++ b/docs/modules/stackablectl/partials/commands/completions.adoc @@ -6,10 +6,12 @@ Generate shell completions for this tool Usage: stackablectl completions [OPTIONS] Commands: - bash Generate shell completions for Bash - fish Generate shell completions for Fish - zsh Generate shell completions for ZSH - help Print this message or the help of the given subcommand(s) + bash Generate shell completions for Bash + elvish Generate shell completions for Elvish + fish Generate shell completions for Fish + nushell Generate shell completions for Nushell + zsh Generate shell completions for ZSH + help Print this message or the help of the given subcommand(s) Options: -l, --log-level diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index b574d481..8397bb6c 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -939,6 +939,27 @@ _arguments "${_arguments_options[@]}" : \ '--version[Print version]' \ && ret=0 ;; +(elvish) +_arguments "${_arguments_options[@]}" : \ +'-l+[Log level this application uses]:LOG_LEVEL: ' \ +'--log-level=[Log level this application uses]:LOG_LEVEL: ' \ +'*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ +'*--demo-file=[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ +'*-s+[Provide one or more additional (custom) stack file(s)]:STACK_FILE:_files' \ +'*--stack-file=[Provide one or more additional (custom) stack file(s)]:STACK_FILE:_files' \ +'*-r+[Provide one or more additional (custom) release file(s)]:RELEASE_FILE:_files' \ +'*--release-file=[Provide one or more additional (custom) release file(s)]:RELEASE_FILE:_files' \ +'--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ +'--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ +'--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--no-cache[Do not cache the remote (default) demo, stack and release files]' \ +'--offline[Do not request any remote files via the network]' \ +'-h[Print help (see more with '\''--help'\'')]' \ +'--help[Print help (see more with '\''--help'\'')]' \ +'-V[Print version]' \ +'--version[Print version]' \ +&& ret=0 +;; (fish) _arguments "${_arguments_options[@]}" : \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ @@ -960,6 +981,27 @@ _arguments "${_arguments_options[@]}" : \ '--version[Print version]' \ && ret=0 ;; +(nushell) +_arguments "${_arguments_options[@]}" : \ +'-l+[Log level this application uses]:LOG_LEVEL: ' \ +'--log-level=[Log level this application uses]:LOG_LEVEL: ' \ +'*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ +'*--demo-file=[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ +'*-s+[Provide one or more additional (custom) stack file(s)]:STACK_FILE:_files' \ +'*--stack-file=[Provide one or more additional (custom) stack file(s)]:STACK_FILE:_files' \ +'*-r+[Provide one or more additional (custom) release file(s)]:RELEASE_FILE:_files' \ +'*--release-file=[Provide one or more additional (custom) release file(s)]:RELEASE_FILE:_files' \ +'--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ +'--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ +'--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--no-cache[Do not cache the remote (default) demo, stack and release files]' \ +'--offline[Do not request any remote files via the network]' \ +'-h[Print help (see more with '\''--help'\'')]' \ +'--help[Print help (see more with '\''--help'\'')]' \ +'-V[Print version]' \ +'--version[Print version]' \ +&& ret=0 +;; (zsh) _arguments "${_arguments_options[@]}" : \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ @@ -997,10 +1039,18 @@ _arguments "${_arguments_options[@]}" : \ _arguments "${_arguments_options[@]}" : \ && ret=0 ;; +(elvish) +_arguments "${_arguments_options[@]}" : \ +&& ret=0 +;; (fish) _arguments "${_arguments_options[@]}" : \ && ret=0 ;; +(nushell) +_arguments "${_arguments_options[@]}" : \ +&& ret=0 +;; (zsh) _arguments "${_arguments_options[@]}" : \ && ret=0 @@ -1326,10 +1376,18 @@ _arguments "${_arguments_options[@]}" : \ _arguments "${_arguments_options[@]}" : \ && ret=0 ;; +(elvish) +_arguments "${_arguments_options[@]}" : \ +&& ret=0 +;; (fish) _arguments "${_arguments_options[@]}" : \ && ret=0 ;; +(nushell) +_arguments "${_arguments_options[@]}" : \ +&& ret=0 +;; (zsh) _arguments "${_arguments_options[@]}" : \ && ret=0 @@ -1441,7 +1499,9 @@ _stackablectl__cache__list_commands() { _stackablectl__completions_commands() { local commands; commands=( 'bash:Generate shell completions for Bash' \ +'elvish:Generate shell completions for Elvish' \ 'fish:Generate shell completions for Fish' \ +'nushell:Generate shell completions for Nushell' \ 'zsh:Generate shell completions for ZSH' \ 'help:Print this message or the help of the given subcommand(s)' \ ) @@ -1452,6 +1512,11 @@ _stackablectl__completions__bash_commands() { local commands; commands=() _describe -t commands 'stackablectl completions bash commands' commands "$@" } +(( $+functions[_stackablectl__completions__elvish_commands] )) || +_stackablectl__completions__elvish_commands() { + local commands; commands=() + _describe -t commands 'stackablectl completions elvish commands' commands "$@" +} (( $+functions[_stackablectl__completions__fish_commands] )) || _stackablectl__completions__fish_commands() { local commands; commands=() @@ -1461,7 +1526,9 @@ _stackablectl__completions__fish_commands() { _stackablectl__completions__help_commands() { local commands; commands=( 'bash:Generate shell completions for Bash' \ +'elvish:Generate shell completions for Elvish' \ 'fish:Generate shell completions for Fish' \ +'nushell:Generate shell completions for Nushell' \ 'zsh:Generate shell completions for ZSH' \ 'help:Print this message or the help of the given subcommand(s)' \ ) @@ -1472,6 +1539,11 @@ _stackablectl__completions__help__bash_commands() { local commands; commands=() _describe -t commands 'stackablectl completions help bash commands' commands "$@" } +(( $+functions[_stackablectl__completions__help__elvish_commands] )) || +_stackablectl__completions__help__elvish_commands() { + local commands; commands=() + _describe -t commands 'stackablectl completions help elvish commands' commands "$@" +} (( $+functions[_stackablectl__completions__help__fish_commands] )) || _stackablectl__completions__help__fish_commands() { local commands; commands=() @@ -1482,11 +1554,21 @@ _stackablectl__completions__help__help_commands() { local commands; commands=() _describe -t commands 'stackablectl completions help help commands' commands "$@" } +(( $+functions[_stackablectl__completions__help__nushell_commands] )) || +_stackablectl__completions__help__nushell_commands() { + local commands; commands=() + _describe -t commands 'stackablectl completions help nushell commands' commands "$@" +} (( $+functions[_stackablectl__completions__help__zsh_commands] )) || _stackablectl__completions__help__zsh_commands() { local commands; commands=() _describe -t commands 'stackablectl completions help zsh commands' commands "$@" } +(( $+functions[_stackablectl__completions__nushell_commands] )) || +_stackablectl__completions__nushell_commands() { + local commands; commands=() + _describe -t commands 'stackablectl completions nushell commands' commands "$@" +} (( $+functions[_stackablectl__completions__zsh_commands] )) || _stackablectl__completions__zsh_commands() { local commands; commands=() @@ -1589,7 +1671,9 @@ _stackablectl__help__cache__list_commands() { _stackablectl__help__completions_commands() { local commands; commands=( 'bash:Generate shell completions for Bash' \ +'elvish:Generate shell completions for Elvish' \ 'fish:Generate shell completions for Fish' \ +'nushell:Generate shell completions for Nushell' \ 'zsh:Generate shell completions for ZSH' \ ) _describe -t commands 'stackablectl help completions commands' commands "$@" @@ -1599,11 +1683,21 @@ _stackablectl__help__completions__bash_commands() { local commands; commands=() _describe -t commands 'stackablectl help completions bash commands' commands "$@" } +(( $+functions[_stackablectl__help__completions__elvish_commands] )) || +_stackablectl__help__completions__elvish_commands() { + local commands; commands=() + _describe -t commands 'stackablectl help completions elvish commands' commands "$@" +} (( $+functions[_stackablectl__help__completions__fish_commands] )) || _stackablectl__help__completions__fish_commands() { local commands; commands=() _describe -t commands 'stackablectl help completions fish commands' commands "$@" } +(( $+functions[_stackablectl__help__completions__nushell_commands] )) || +_stackablectl__help__completions__nushell_commands() { + local commands; commands=() + _describe -t commands 'stackablectl help completions nushell commands' commands "$@" +} (( $+functions[_stackablectl__help__completions__zsh_commands] )) || _stackablectl__help__completions__zsh_commands() { local commands; commands=() diff --git a/extra/completions/stackablectl.bash b/extra/completions/stackablectl.bash index ca06b93f..9b44a4da 100644 --- a/extra/completions/stackablectl.bash +++ b/extra/completions/stackablectl.bash @@ -60,24 +60,36 @@ _stackablectl() { stackablectl__completions,bash) cmd="stackablectl__completions__bash" ;; + stackablectl__completions,elvish) + cmd="stackablectl__completions__elvish" + ;; stackablectl__completions,fish) cmd="stackablectl__completions__fish" ;; stackablectl__completions,help) cmd="stackablectl__completions__help" ;; + stackablectl__completions,nushell) + cmd="stackablectl__completions__nushell" + ;; stackablectl__completions,zsh) cmd="stackablectl__completions__zsh" ;; stackablectl__completions__help,bash) cmd="stackablectl__completions__help__bash" ;; + stackablectl__completions__help,elvish) + cmd="stackablectl__completions__help__elvish" + ;; stackablectl__completions__help,fish) cmd="stackablectl__completions__help__fish" ;; stackablectl__completions__help,help) cmd="stackablectl__completions__help__help" ;; + stackablectl__completions__help,nushell) + cmd="stackablectl__completions__help__nushell" + ;; stackablectl__completions__help,zsh) cmd="stackablectl__completions__help__zsh" ;; @@ -141,9 +153,15 @@ _stackablectl() { stackablectl__help__completions,bash) cmd="stackablectl__help__completions__bash" ;; + stackablectl__help__completions,elvish) + cmd="stackablectl__help__completions__elvish" + ;; stackablectl__help__completions,fish) cmd="stackablectl__help__completions__fish" ;; + stackablectl__help__completions,nushell) + cmd="stackablectl__help__completions__nushell" + ;; stackablectl__help__completions,zsh) cmd="stackablectl__help__completions__zsh" ;; @@ -865,7 +883,7 @@ _stackablectl() { return 0 ;; stackablectl__completions) - opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version bash fish zsh help" + opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version bash elvish fish nushell zsh help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1112,6 +1130,130 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__completions__elvish) + opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + --log-level) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + -l) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --demo-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -d) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --stack-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -s) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --release-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -r) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --helm-repo-stable) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --helm-repo-test) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --helm-repo-dev) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__completions__fish) opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then @@ -1237,7 +1379,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__help) - opts="bash fish zsh help" + opts="bash elvish fish nushell zsh help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1264,6 +1406,20 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__completions__help__elvish) + opts="" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__completions__help__fish) opts="" if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then @@ -1292,6 +1448,20 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__completions__help__nushell) + opts="" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__completions__help__zsh) opts="" if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then @@ -1306,6 +1476,130 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__completions__nushell) + opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + --log-level) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + -l) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --demo-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -d) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --stack-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -s) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --release-file) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + -r) + local oldifs + if [ -n "${IFS+x}" ]; then + oldifs="$IFS" + fi + IFS=$'\n' + COMPREPLY=($(compgen -f "${cur}")) + if [ -n "${oldifs+x}" ]; then + IFS="$oldifs" + fi + if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then + compopt -o filenames + fi + return 0 + ;; + --helm-repo-stable) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --helm-repo-test) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + --helm-repo-dev) + COMPREPLY=($(compgen -f "${cur}")) + return 0 + ;; + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__completions__zsh) opts="-l -d -s -r -h -V --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then @@ -2261,7 +2555,7 @@ _stackablectl() { return 0 ;; stackablectl__help__completions) - opts="bash fish zsh" + opts="bash elvish fish nushell zsh" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -2288,6 +2582,20 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__help__completions__elvish) + opts="" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__help__completions__fish) opts="" if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then @@ -2302,6 +2610,20 @@ _stackablectl() { COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 ;; + stackablectl__help__completions__nushell) + opts="" + if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + fi + case "${prev}" in + *) + COMPREPLY=() + ;; + esac + COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) + return 0 + ;; stackablectl__help__completions__zsh) opts="" if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then diff --git a/extra/completions/stackablectl.elv b/extra/completions/stackablectl.elv new file mode 100644 index 00000000..ecc11445 --- /dev/null +++ b/extra/completions/stackablectl.elv @@ -0,0 +1,982 @@ + +use builtin; +use str; + +set edit:completion:arg-completer[stackablectl] = {|@words| + fn spaces {|n| + builtin:repeat $n ' ' | str:join '' + } + fn cand {|text desc| + edit:complex-candidate $text &display=$text' '(spaces (- 14 (wcswidth $text)))$desc + } + var command = 'stackablectl' + for word $words[1..-1] { + if (str:has-prefix $word '-') { + break + } + set command = $command';'$word + } + var completions = [ + &'stackablectl'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand operator 'Interact with single operator instead of the full platform' + cand release 'Interact with all operators of the platform which are released together' + cand stack 'Interact with stacks, which are ready-to-use product combinations' + cand stacklet 'Interact with deployed stacklets, which are bundles of resources and containers required to run the product' + cand demo 'Interact with demos, which are end-to-end usage demonstrations of the Stackable data platform' + cand completions 'Generate shell completions for this tool' + cand cache 'Interact with locally cached files' + cand experimental-debug 'EXPERIMENTAL: Launch a debug container for a Pod' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;operator'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand list 'List available operators' + cand describe 'Print out detailed operator information' + cand install 'Install one or more operators' + cand uninstall 'Uninstall one or more operators' + cand installed 'List installed operators' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;operator;list'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;operator;describe'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;operator;install'= { + cand --operator-namespace 'Namespace in the cluster used to deploy the operators' + cand --operator-ns 'Namespace in the cluster used to deploy the operators' + cand -c 'Type of local cluster to use for testing' + cand --cluster 'Type of local cluster to use for testing' + cand --cluster-name 'Name of the local cluster' + cand --cluster-nodes 'Number of total nodes in the local cluster' + cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;operator;uninstall'= { + cand --operator-namespace 'Namespace in the cluster used to deploy the operators' + cand --operator-ns 'Namespace in the cluster used to deploy the operators' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;operator;installed'= { + cand -o 'o' + cand --output 'output' + cand --operator-namespace 'Namespace in the cluster used to deploy the operators' + cand --operator-ns 'Namespace in the cluster used to deploy the operators' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;operator;help'= { + cand list 'List available operators' + cand describe 'Print out detailed operator information' + cand install 'Install one or more operators' + cand uninstall 'Uninstall one or more operators' + cand installed 'List installed operators' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;operator;help;list'= { + } + &'stackablectl;operator;help;describe'= { + } + &'stackablectl;operator;help;install'= { + } + &'stackablectl;operator;help;uninstall'= { + } + &'stackablectl;operator;help;installed'= { + } + &'stackablectl;operator;help;help'= { + } + &'stackablectl;release'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand list 'List available releases' + cand describe 'Print out detailed release information' + cand install 'Install a specific release' + cand uninstall 'Uninstall a release' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;release;list'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;release;describe'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;release;install'= { + cand -i 'Whitelist of product operators to install' + cand --include 'Whitelist of product operators to install' + cand -e 'Blacklist of product operators to install' + cand --exclude 'Blacklist of product operators to install' + cand --operator-namespace 'Namespace in the cluster used to deploy the operators' + cand --operator-ns 'Namespace in the cluster used to deploy the operators' + cand -c 'Type of local cluster to use for testing' + cand --cluster 'Type of local cluster to use for testing' + cand --cluster-name 'Name of the local cluster' + cand --cluster-nodes 'Number of total nodes in the local cluster' + cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;release;uninstall'= { + cand --operator-namespace 'Namespace in the cluster used to deploy the operators' + cand --operator-ns 'Namespace in the cluster used to deploy the operators' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;release;help'= { + cand list 'List available releases' + cand describe 'Print out detailed release information' + cand install 'Install a specific release' + cand uninstall 'Uninstall a release' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;release;help;list'= { + } + &'stackablectl;release;help;describe'= { + } + &'stackablectl;release;help;install'= { + } + &'stackablectl;release;help;uninstall'= { + } + &'stackablectl;release;help;help'= { + } + &'stackablectl;stack'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand list 'List available stacks' + cand describe 'Describe a specific stack' + cand install 'Install a specific stack' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;stack;list'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;stack;describe'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;stack;install'= { + cand --stack-parameters 'List of parameters to use when installing the stack' + cand --parameters 'List of parameters to use when installing the stack' + cand -c 'Type of local cluster to use for testing' + cand --cluster 'Type of local cluster to use for testing' + cand --cluster-name 'Name of the local cluster' + cand --cluster-nodes 'Number of total nodes in the local cluster' + cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand --operator-namespace 'Namespace where the operators are deployed' + cand --operator-ns 'Namespace where the operators are deployed' + cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --skip-release 'Skip the installation of the release during the stack install process' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;stack;help'= { + cand list 'List available stacks' + cand describe 'Describe a specific stack' + cand install 'Install a specific stack' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;stack;help;list'= { + } + &'stackablectl;stack;help;describe'= { + } + &'stackablectl;stack;help;install'= { + } + &'stackablectl;stack;help;help'= { + } + &'stackablectl;stacklet'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand credentials 'Display credentials for a stacklet' + cand list 'List deployed stacklets' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;stacklet;credentials'= { + cand -n 'Namespace in the cluster used to deploy the products' + cand --product-namespace 'Namespace in the cluster used to deploy the products' + cand --product-ns 'Namespace in the cluster used to deploy the products' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;stacklet;list'= { + cand -o 'o' + cand --output 'output' + cand --operator-namespace 'Namespace where the operators are deployed' + cand --operator-ns 'Namespace where the operators are deployed' + cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;stacklet;help'= { + cand credentials 'Display credentials for a stacklet' + cand list 'List deployed stacklets' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;stacklet;help;credentials'= { + } + &'stackablectl;stacklet;help;list'= { + } + &'stackablectl;stacklet;help;help'= { + } + &'stackablectl;demo'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand list 'List available demos' + cand describe 'Print out detailed demo information' + cand install 'Install a specific demo' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;demo;list'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;demo;describe'= { + cand -o 'o' + cand --output 'output' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;demo;install'= { + cand --stack-parameters 'List of parameters to use when installing the stack' + cand --parameters 'List of parameters to use when installing the demo' + cand -c 'Type of local cluster to use for testing' + cand --cluster 'Type of local cluster to use for testing' + cand --cluster-name 'Name of the local cluster' + cand --cluster-nodes 'Number of total nodes in the local cluster' + cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand --operator-namespace 'Namespace where the operators are deployed' + cand --operator-ns 'Namespace where the operators are deployed' + cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --skip-release 'Skip the installation of the release during the stack install process' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;demo;help'= { + cand list 'List available demos' + cand describe 'Print out detailed demo information' + cand install 'Install a specific demo' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;demo;help;list'= { + } + &'stackablectl;demo;help;describe'= { + } + &'stackablectl;demo;help;install'= { + } + &'stackablectl;demo;help;help'= { + } + &'stackablectl;completions'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand bash 'Generate shell completions for Bash' + cand elvish 'Generate shell completions for Elvish' + cand fish 'Generate shell completions for Fish' + cand nushell 'Generate shell completions for Nushell' + cand zsh 'Generate shell completions for ZSH' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;completions;bash'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;completions;elvish'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;completions;fish'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;completions;nushell'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;completions;zsh'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;completions;help'= { + cand bash 'Generate shell completions for Bash' + cand elvish 'Generate shell completions for Elvish' + cand fish 'Generate shell completions for Fish' + cand nushell 'Generate shell completions for Nushell' + cand zsh 'Generate shell completions for ZSH' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;completions;help;bash'= { + } + &'stackablectl;completions;help;elvish'= { + } + &'stackablectl;completions;help;fish'= { + } + &'stackablectl;completions;help;nushell'= { + } + &'stackablectl;completions;help;zsh'= { + } + &'stackablectl;completions;help;help'= { + } + &'stackablectl;cache'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + cand list 'List cached files' + cand clean 'Clean cached files' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;cache;list'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;cache;clean'= { + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --old 'Only remove outdated files in the cache' + cand --outdated 'Only remove outdated files in the cache' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;cache;help'= { + cand list 'List cached files' + cand clean 'Clean cached files' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;cache;help;list'= { + } + &'stackablectl;cache;help;clean'= { + } + &'stackablectl;cache;help;help'= { + } + &'stackablectl;experimental-debug'= { + cand -n 'The namespace of the Pod being debugged' + cand --namespace 'The namespace of the Pod being debugged' + cand -c 'The target container to debug' + cand --container 'The target container to debug' + cand --image 'The debug container image' + cand -l 'Log level this application uses' + cand --log-level 'Log level this application uses' + cand -d 'Provide one or more additional (custom) demo file(s)' + cand --demo-file 'Provide one or more additional (custom) demo file(s)' + cand -s 'Provide one or more additional (custom) stack file(s)' + cand --stack-file 'Provide one or more additional (custom) stack file(s)' + cand -r 'Provide one or more additional (custom) release file(s)' + cand --release-file 'Provide one or more additional (custom) release file(s)' + cand --helm-repo-stable 'Provide a custom Helm stable repository URL' + cand --helm-repo-test 'Provide a custom Helm test repository URL' + cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --no-cache 'Do not cache the remote (default) demo, stack and release files' + cand --offline 'Do not request any remote files via the network' + cand -h 'Print help (see more with ''--help'')' + cand --help 'Print help (see more with ''--help'')' + cand -V 'Print version' + cand --version 'Print version' + } + &'stackablectl;help'= { + cand operator 'Interact with single operator instead of the full platform' + cand release 'Interact with all operators of the platform which are released together' + cand stack 'Interact with stacks, which are ready-to-use product combinations' + cand stacklet 'Interact with deployed stacklets, which are bundles of resources and containers required to run the product' + cand demo 'Interact with demos, which are end-to-end usage demonstrations of the Stackable data platform' + cand completions 'Generate shell completions for this tool' + cand cache 'Interact with locally cached files' + cand experimental-debug 'EXPERIMENTAL: Launch a debug container for a Pod' + cand help 'Print this message or the help of the given subcommand(s)' + } + &'stackablectl;help;operator'= { + cand list 'List available operators' + cand describe 'Print out detailed operator information' + cand install 'Install one or more operators' + cand uninstall 'Uninstall one or more operators' + cand installed 'List installed operators' + } + &'stackablectl;help;operator;list'= { + } + &'stackablectl;help;operator;describe'= { + } + &'stackablectl;help;operator;install'= { + } + &'stackablectl;help;operator;uninstall'= { + } + &'stackablectl;help;operator;installed'= { + } + &'stackablectl;help;release'= { + cand list 'List available releases' + cand describe 'Print out detailed release information' + cand install 'Install a specific release' + cand uninstall 'Uninstall a release' + } + &'stackablectl;help;release;list'= { + } + &'stackablectl;help;release;describe'= { + } + &'stackablectl;help;release;install'= { + } + &'stackablectl;help;release;uninstall'= { + } + &'stackablectl;help;stack'= { + cand list 'List available stacks' + cand describe 'Describe a specific stack' + cand install 'Install a specific stack' + } + &'stackablectl;help;stack;list'= { + } + &'stackablectl;help;stack;describe'= { + } + &'stackablectl;help;stack;install'= { + } + &'stackablectl;help;stacklet'= { + cand credentials 'Display credentials for a stacklet' + cand list 'List deployed stacklets' + } + &'stackablectl;help;stacklet;credentials'= { + } + &'stackablectl;help;stacklet;list'= { + } + &'stackablectl;help;demo'= { + cand list 'List available demos' + cand describe 'Print out detailed demo information' + cand install 'Install a specific demo' + } + &'stackablectl;help;demo;list'= { + } + &'stackablectl;help;demo;describe'= { + } + &'stackablectl;help;demo;install'= { + } + &'stackablectl;help;completions'= { + cand bash 'Generate shell completions for Bash' + cand elvish 'Generate shell completions for Elvish' + cand fish 'Generate shell completions for Fish' + cand nushell 'Generate shell completions for Nushell' + cand zsh 'Generate shell completions for ZSH' + } + &'stackablectl;help;completions;bash'= { + } + &'stackablectl;help;completions;elvish'= { + } + &'stackablectl;help;completions;fish'= { + } + &'stackablectl;help;completions;nushell'= { + } + &'stackablectl;help;completions;zsh'= { + } + &'stackablectl;help;cache'= { + cand list 'List cached files' + cand clean 'Clean cached files' + } + &'stackablectl;help;cache;list'= { + } + &'stackablectl;help;cache;clean'= { + } + &'stackablectl;help;experimental-debug'= { + } + &'stackablectl;help;help'= { + } + ] + $completions[$command] +} diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index 2c227180..c0887c8f 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -376,21 +376,23 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fi complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from help" -f -a "describe" -d 'Print out detailed demo information' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from help" -f -a "install" -d 'Install a specific demo' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s l -l log-level -d 'Log level this application uses' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s r -l release-file -d 'Provide one or more additional (custom) release file(s)' -r -F -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -l offline -d 'Do not request any remote files via the network' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s h -l help -d 'Print help (see more with \'--help\')' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -s V -l version -d 'Print version' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -f -a "bash" -d 'Generate shell completions for Bash' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -f -a "fish" -d 'Generate shell completions for Fish' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -f -a "zsh" -d 'Generate shell completions for ZSH' -complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash fish zsh help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s l -l log-level -d 'Log level this application uses' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s r -l release-file -d 'Provide one or more additional (custom) release file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l offline -d 'Do not request any remote files via the network' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s h -l help -d 'Print help (see more with \'--help\')' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s V -l version -d 'Print version' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "bash" -d 'Generate shell completions for Bash' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "elvish" -d 'Generate shell completions for Elvish' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "fish" -d 'Generate shell completions for Fish' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "nushell" -d 'Generate shell completions for Nushell' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "zsh" -d 'Generate shell completions for ZSH' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -402,6 +404,17 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l offline -d 'Do not request any remote files via the network' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s V -l version -d 'Print version' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s l -l log-level -d 'Log level this application uses' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s r -l release-file -d 'Provide one or more additional (custom) release file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l offline -d 'Do not request any remote files via the network' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s h -l help -d 'Print help (see more with \'--help\')' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s V -l version -d 'Print version' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -413,6 +426,17 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l offline -d 'Do not request any remote files via the network' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s V -l version -d 'Print version' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s l -l log-level -d 'Log level this application uses' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s r -l release-file -d 'Provide one or more additional (custom) release file(s)' -r -F +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l offline -d 'Do not request any remote files via the network' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s h -l help -d 'Print help (see more with \'--help\')' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s V -l version -d 'Print version' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -425,7 +449,9 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s V -l version -d 'Print version' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "bash" -d 'Generate shell completions for Bash' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "elvish" -d 'Generate shell completions for Elvish' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "fish" -d 'Generate shell completions for Fish' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "nushell" -d 'Generate shell completions for Nushell' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "zsh" -d 'Generate shell completions for ZSH' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -s l -l log-level -d 'Log level this application uses' -r @@ -509,7 +535,9 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fi complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from demo" -f -a "describe" -d 'Print out detailed demo information' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from demo" -f -a "install" -d 'Install a specific demo' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from completions" -f -a "bash" -d 'Generate shell completions for Bash' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from completions" -f -a "elvish" -d 'Generate shell completions for Elvish' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from completions" -f -a "fish" -d 'Generate shell completions for Fish' +complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from completions" -f -a "nushell" -d 'Generate shell completions for Nushell' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from completions" -f -a "zsh" -d 'Generate shell completions for ZSH' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from cache" -f -a "list" -d 'List cached files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand help; and __fish_seen_subcommand_from cache" -f -a "clean" -d 'Clean cached files' diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu new file mode 100644 index 00000000..2c29c765 --- /dev/null +++ b/extra/completions/stackablectl.nu @@ -0,0 +1,921 @@ +module completions { + + # Command line tool to interact with the Stackable Data Platform + export extern stackablectl [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Interact with single operator instead of the full platform + export extern "stackablectl operator" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl operator list output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List available operators + export extern "stackablectl operator list" [ + --output(-o): string@"nu-complete stackablectl operator list output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl operator describe output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # Print out detailed operator information + export extern "stackablectl operator describe" [ + OPERATOR: string # Operator to describe + --output(-o): string@"nu-complete stackablectl operator describe output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl operator install cluster_type" [] { + [ "kind" "minikube" ] + } + + # Install one or more operators + export extern "stackablectl operator install" [ + ...OPERATORS: string # Operator(s) to install + --operator-namespace: string # Namespace in the cluster used to deploy the operators + --operator-ns: string # Namespace in the cluster used to deploy the operators + --cluster(-c): string@"nu-complete stackablectl operator install cluster_type" # Type of local cluster to use for testing + --cluster-name: string # Name of the local cluster + --cluster-nodes: string # Number of total nodes in the local cluster + --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Uninstall one or more operators + export extern "stackablectl operator uninstall" [ + ...operators: string # One or more operators to uninstall + --operator-namespace: string # Namespace in the cluster used to deploy the operators + --operator-ns: string # Namespace in the cluster used to deploy the operators + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl operator installed output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List installed operators + export extern "stackablectl operator installed" [ + --output(-o): string@"nu-complete stackablectl operator installed output_type" + --operator-namespace: string # Namespace in the cluster used to deploy the operators + --operator-ns: string # Namespace in the cluster used to deploy the operators + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl operator help" [ + ] + + # List available operators + export extern "stackablectl operator help list" [ + ] + + # Print out detailed operator information + export extern "stackablectl operator help describe" [ + ] + + # Install one or more operators + export extern "stackablectl operator help install" [ + ] + + # Uninstall one or more operators + export extern "stackablectl operator help uninstall" [ + ] + + # List installed operators + export extern "stackablectl operator help installed" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl operator help help" [ + ] + + # Interact with all operators of the platform which are released together + export extern "stackablectl release" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl release list output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List available releases + export extern "stackablectl release list" [ + --output(-o): string@"nu-complete stackablectl release list output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl release describe output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # Print out detailed release information + export extern "stackablectl release describe" [ + RELEASE: string + --output(-o): string@"nu-complete stackablectl release describe output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl release install cluster_type" [] { + [ "kind" "minikube" ] + } + + # Install a specific release + export extern "stackablectl release install" [ + RELEASE: string # Release to install + --include(-i): string # Whitelist of product operators to install + --exclude(-e): string # Blacklist of product operators to install + --operator-namespace: string # Namespace in the cluster used to deploy the operators + --operator-ns: string # Namespace in the cluster used to deploy the operators + --cluster(-c): string@"nu-complete stackablectl release install cluster_type" # Type of local cluster to use for testing + --cluster-name: string # Name of the local cluster + --cluster-nodes: string # Number of total nodes in the local cluster + --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Uninstall a release + export extern "stackablectl release uninstall" [ + RELEASE: string # Name of the release to uninstall + --operator-namespace: string # Namespace in the cluster used to deploy the operators + --operator-ns: string # Namespace in the cluster used to deploy the operators + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl release help" [ + ] + + # List available releases + export extern "stackablectl release help list" [ + ] + + # Print out detailed release information + export extern "stackablectl release help describe" [ + ] + + # Install a specific release + export extern "stackablectl release help install" [ + ] + + # Uninstall a release + export extern "stackablectl release help uninstall" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl release help help" [ + ] + + # Interact with stacks, which are ready-to-use product combinations + export extern "stackablectl stack" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl stack list output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List available stacks + export extern "stackablectl stack list" [ + --output(-o): string@"nu-complete stackablectl stack list output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl stack describe output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # Describe a specific stack + export extern "stackablectl stack describe" [ + stack_name: string # Name of the stack to describe + --output(-o): string@"nu-complete stackablectl stack describe output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl stack install cluster_type" [] { + [ "kind" "minikube" ] + } + + # Install a specific stack + export extern "stackablectl stack install" [ + stack_name: string # Name of the stack to describe + --skip-release # Skip the installation of the release during the stack install process + --stack-parameters: string # List of parameters to use when installing the stack + --parameters: string # List of parameters to use when installing the stack + --cluster(-c): string@"nu-complete stackablectl stack install cluster_type" # Type of local cluster to use for testing + --cluster-name: string # Name of the local cluster + --cluster-nodes: string # Number of total nodes in the local cluster + --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --operator-namespace: string # Namespace where the operators are deployed + --operator-ns: string # Namespace where the operators are deployed + --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed + --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl stack help" [ + ] + + # List available stacks + export extern "stackablectl stack help list" [ + ] + + # Describe a specific stack + export extern "stackablectl stack help describe" [ + ] + + # Install a specific stack + export extern "stackablectl stack help install" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl stack help help" [ + ] + + # Interact with deployed stacklets, which are bundles of resources and containers required to run the product + export extern "stackablectl stacklet" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Display credentials for a stacklet + export extern "stackablectl stacklet credentials" [ + product_name: string # The name of the product, for example 'superset' + stacklet_name: string # The name of the stacklet, for example 'superset' + --product-namespace(-n): string # Namespace in the cluster used to deploy the products + --product-ns: string # Namespace in the cluster used to deploy the products + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl stacklet list output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List deployed stacklets + export extern "stackablectl stacklet list" [ + --output(-o): string@"nu-complete stackablectl stacklet list output_type" + --operator-namespace: string # Namespace where the operators are deployed + --operator-ns: string # Namespace where the operators are deployed + --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed + --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl stacklet help" [ + ] + + # Display credentials for a stacklet + export extern "stackablectl stacklet help credentials" [ + ] + + # List deployed stacklets + export extern "stackablectl stacklet help list" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl stacklet help help" [ + ] + + # Interact with demos, which are end-to-end usage demonstrations of the Stackable data platform + export extern "stackablectl demo" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl demo list output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # List available demos + export extern "stackablectl demo list" [ + --output(-o): string@"nu-complete stackablectl demo list output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl demo describe output_type" [] { + [ "plain" "table" "json" "yaml" ] + } + + # Print out detailed demo information + export extern "stackablectl demo describe" [ + DEMO: string # Demo to describe + --output(-o): string@"nu-complete stackablectl demo describe output_type" + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + def "nu-complete stackablectl demo install cluster_type" [] { + [ "kind" "minikube" ] + } + + # Install a specific demo + export extern "stackablectl demo install" [ + DEMO: string # Demo to install + --skip-release # Skip the installation of the release during the stack install process + --stack-parameters: string # List of parameters to use when installing the stack + --parameters: string # List of parameters to use when installing the demo + --cluster(-c): string@"nu-complete stackablectl demo install cluster_type" # Type of local cluster to use for testing + --cluster-name: string # Name of the local cluster + --cluster-nodes: string # Number of total nodes in the local cluster + --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --operator-namespace: string # Namespace where the operators are deployed + --operator-ns: string # Namespace where the operators are deployed + --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed + --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl demo help" [ + ] + + # List available demos + export extern "stackablectl demo help list" [ + ] + + # Print out detailed demo information + export extern "stackablectl demo help describe" [ + ] + + # Install a specific demo + export extern "stackablectl demo help install" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl demo help help" [ + ] + + # Generate shell completions for this tool + export extern "stackablectl completions" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Generate shell completions for Bash + export extern "stackablectl completions bash" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Generate shell completions for Elvish + export extern "stackablectl completions elvish" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Generate shell completions for Fish + export extern "stackablectl completions fish" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Generate shell completions for Nushell + export extern "stackablectl completions nushell" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Generate shell completions for ZSH + export extern "stackablectl completions zsh" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl completions help" [ + ] + + # Generate shell completions for Bash + export extern "stackablectl completions help bash" [ + ] + + # Generate shell completions for Elvish + export extern "stackablectl completions help elvish" [ + ] + + # Generate shell completions for Fish + export extern "stackablectl completions help fish" [ + ] + + # Generate shell completions for Nushell + export extern "stackablectl completions help nushell" [ + ] + + # Generate shell completions for ZSH + export extern "stackablectl completions help zsh" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl completions help help" [ + ] + + # Interact with locally cached files + export extern "stackablectl cache" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # List cached files + export extern "stackablectl cache list" [ + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Clean cached files + export extern "stackablectl cache clean" [ + --old # Only remove outdated files in the cache + --outdated # Only remove outdated files in the cache + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl cache help" [ + ] + + # List cached files + export extern "stackablectl cache help list" [ + ] + + # Clean cached files + export extern "stackablectl cache help clean" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl cache help help" [ + ] + + # EXPERIMENTAL: Launch a debug container for a Pod + export extern "stackablectl experimental-debug" [ + --namespace(-n): string # The namespace of the Pod being debugged + pod: string # The Pod to debug + --container(-c): string # The target container to debug + --image: string # The debug container image + ...cmd: string # The command to run in the debug container + --log-level(-l): string # Log level this application uses + --no-cache # Do not cache the remote (default) demo, stack and release files + --offline # Do not request any remote files via the network + --demo-file(-d): string # Provide one or more additional (custom) demo file(s) + --stack-file(-s): string # Provide one or more additional (custom) stack file(s) + --release-file(-r): string # Provide one or more additional (custom) release file(s) + --helm-repo-stable: string # Provide a custom Helm stable repository URL + --helm-repo-test: string # Provide a custom Helm test repository URL + --helm-repo-dev: string # Provide a custom Helm dev repository URL + --help(-h) # Print help (see more with '--help') + --version(-V) # Print version + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl help" [ + ] + + # Interact with single operator instead of the full platform + export extern "stackablectl help operator" [ + ] + + # List available operators + export extern "stackablectl help operator list" [ + ] + + # Print out detailed operator information + export extern "stackablectl help operator describe" [ + ] + + # Install one or more operators + export extern "stackablectl help operator install" [ + ] + + # Uninstall one or more operators + export extern "stackablectl help operator uninstall" [ + ] + + # List installed operators + export extern "stackablectl help operator installed" [ + ] + + # Interact with all operators of the platform which are released together + export extern "stackablectl help release" [ + ] + + # List available releases + export extern "stackablectl help release list" [ + ] + + # Print out detailed release information + export extern "stackablectl help release describe" [ + ] + + # Install a specific release + export extern "stackablectl help release install" [ + ] + + # Uninstall a release + export extern "stackablectl help release uninstall" [ + ] + + # Interact with stacks, which are ready-to-use product combinations + export extern "stackablectl help stack" [ + ] + + # List available stacks + export extern "stackablectl help stack list" [ + ] + + # Describe a specific stack + export extern "stackablectl help stack describe" [ + ] + + # Install a specific stack + export extern "stackablectl help stack install" [ + ] + + # Interact with deployed stacklets, which are bundles of resources and containers required to run the product + export extern "stackablectl help stacklet" [ + ] + + # Display credentials for a stacklet + export extern "stackablectl help stacklet credentials" [ + ] + + # List deployed stacklets + export extern "stackablectl help stacklet list" [ + ] + + # Interact with demos, which are end-to-end usage demonstrations of the Stackable data platform + export extern "stackablectl help demo" [ + ] + + # List available demos + export extern "stackablectl help demo list" [ + ] + + # Print out detailed demo information + export extern "stackablectl help demo describe" [ + ] + + # Install a specific demo + export extern "stackablectl help demo install" [ + ] + + # Generate shell completions for this tool + export extern "stackablectl help completions" [ + ] + + # Generate shell completions for Bash + export extern "stackablectl help completions bash" [ + ] + + # Generate shell completions for Elvish + export extern "stackablectl help completions elvish" [ + ] + + # Generate shell completions for Fish + export extern "stackablectl help completions fish" [ + ] + + # Generate shell completions for Nushell + export extern "stackablectl help completions nushell" [ + ] + + # Generate shell completions for ZSH + export extern "stackablectl help completions zsh" [ + ] + + # Interact with locally cached files + export extern "stackablectl help cache" [ + ] + + # List cached files + export extern "stackablectl help cache list" [ + ] + + # Clean cached files + export extern "stackablectl help cache clean" [ + ] + + # EXPERIMENTAL: Launch a debug container for a Pod + export extern "stackablectl help experimental-debug" [ + ] + + # Print this message or the help of the given subcommand(s) + export extern "stackablectl help help" [ + ] + +} + +export use completions * diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 0c724ac7..33c72ee1 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Add shell completions for Nushell and Elvish ([#337]). + +[#337]: https://github.com/stackabletech/stackable-cockpit/pull/337 + ## [24.11.0] - 2024-11-18 ### Changed diff --git a/rust/stackablectl/Cargo.toml b/rust/stackablectl/Cargo.toml index 4c35f931..42d2da4f 100644 --- a/rust/stackablectl/Cargo.toml +++ b/rust/stackablectl/Cargo.toml @@ -14,6 +14,7 @@ stackable-cockpit = { path = "../stackable-cockpit", features = ["openapi"] } stackable-operator.workspace = true clap_complete.workspace = true +clap_complete_nushell.workspace = true clap.workspace = true comfy-table.workspace = true directories.workspace = true diff --git a/rust/stackablectl/src/cmds/completions.rs b/rust/stackablectl/src/cmds/completions.rs index 8d70ecbb..efee404d 100644 --- a/rust/stackablectl/src/cmds/completions.rs +++ b/rust/stackablectl/src/cmds/completions.rs @@ -1,5 +1,9 @@ use clap::{Args, CommandFactory, Subcommand}; -use clap_complete::{generate, Shell}; +use clap_complete::{ + generate, Generator, + Shell::{Bash, Elvish, Fish, Zsh}, +}; +use clap_complete_nushell::Nushell; use snafu::{ResultExt, Snafu}; use crate::cli::Cli; @@ -15,9 +19,15 @@ pub enum CompletionCommands { /// Generate shell completions for Bash Bash, + /// Generate shell completions for Elvish + Elvish, + /// Generate shell completions for Fish Fish, + /// Generate shell completions for Nushell + Nushell, + /// Generate shell completions for ZSH Zsh, } @@ -31,14 +41,19 @@ pub enum CmdError { impl CompletionsArgs { pub fn run(&self) -> Result { match &self.subcommand { - CompletionCommands::Bash => generate_completions(Shell::Bash), - CompletionCommands::Fish => generate_completions(Shell::Fish), - CompletionCommands::Zsh => generate_completions(Shell::Zsh), + CompletionCommands::Bash => generate_completions(Bash), + CompletionCommands::Fish => generate_completions(Fish), + CompletionCommands::Elvish => generate_completions(Elvish), + CompletionCommands::Nushell => generate_completions(Nushell), + CompletionCommands::Zsh => generate_completions(Zsh), } } } -fn generate_completions(shell: Shell) -> Result { +fn generate_completions(shell: G) -> Result +where + G: Generator, +{ let mut cmd = Cli::command(); let mut buf = Vec::new(); diff --git a/rust/xtask/Cargo.toml b/rust/xtask/Cargo.toml index 54be1ea4..1007dca3 100644 --- a/rust/xtask/Cargo.toml +++ b/rust/xtask/Cargo.toml @@ -5,7 +5,8 @@ edition = "2021" publish = false [dependencies] -clap_complete = { workspace = true } +clap_complete.workspace = true +clap_complete_nushell.workspace = true clap_mangen = "0.2.10" clap.workspace = true once_cell.workspace = true diff --git a/rust/xtask/src/completions.rs b/rust/xtask/src/completions.rs index 9ed85464..64f61317 100644 --- a/rust/xtask/src/completions.rs +++ b/rust/xtask/src/completions.rs @@ -1,7 +1,11 @@ use std::fs; use clap::CommandFactory; -use clap_complete::{generate as generate_comps, Shell}; +use clap_complete::{ + generate as generate_comps, + Shell::{Bash, Elvish, Fish, Zsh}, +}; +use clap_complete_nushell::Nushell; use snafu::{ResultExt, Snafu}; use stackablectl::cli::Cli; @@ -19,15 +23,23 @@ pub fn generate() -> Result<(), GenCompError> { // Bash completions let mut f = fs::File::create("extra/completions/stackablectl.bash").context(IoSnafu)?; - generate_comps(Shell::Bash, &mut cmd, name.clone(), &mut f); + generate_comps(Bash, &mut cmd, name.clone(), &mut f); + + // Elvish completions + let mut f = fs::File::create("extra/completions/stackablectl.elv").context(IoSnafu)?; + generate_comps(Elvish, &mut cmd, name.clone(), &mut f); // Fish completions let mut f = fs::File::create("extra/completions/stackablectl.fish").context(IoSnafu)?; - generate_comps(Shell::Fish, &mut cmd, name.clone(), &mut f); + generate_comps(Fish, &mut cmd, name.clone(), &mut f); + + // Nushell completions + let mut f = fs::File::create("extra/completions/stackablectl.nu").context(IoSnafu)?; + generate_comps(Nushell, &mut cmd, name.clone(), &mut f); // ZSH completions let mut f = fs::File::create("extra/completions/_stackablectl").context(IoSnafu)?; - generate_comps(Shell::Zsh, &mut cmd, name, &mut f); + generate_comps(Zsh, &mut cmd, name, &mut f); Ok(()) } diff --git a/rust/xtask/src/main.rs b/rust/xtask/src/main.rs index fc05773c..80de075e 100644 --- a/rust/xtask/src/main.rs +++ b/rust/xtask/src/main.rs @@ -15,6 +15,7 @@ mod readme; #[derive(clap::Parser)] #[allow(clippy::enum_variant_names)] enum XtaskCommand { + GenAll, GenMan, GenComp, GenOpenapi, @@ -49,6 +50,14 @@ enum TaskError { #[snafu::report] fn main() -> Result<(), TaskError> { match XtaskCommand::parse() { + XtaskCommand::GenAll => { + // IMPORTANT (@NickLarsenNZ): ensure all commands defined below are also in here. + man::generate()?; + completions::generate()?; + openapi::generate()?; + readme::generate()?; + docs::generate()?; + } XtaskCommand::GenMan => man::generate()?, XtaskCommand::GenComp => completions::generate()?, XtaskCommand::GenOpenapi => openapi::generate()?, From 0f62acd48339b641ca09b863950ad80288f672d9 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Wed, 20 Nov 2024 16:32:01 +0100 Subject: [PATCH 5/5] fix: Sort operator versions by semver version (#336) * fix: Sort operator versions by semver version instead of alphabetically * changelog * Improve error message * Fix pre-commit stuff * Add node to pre-commit CI action * Improve error reporting in web/build.rs * Install node thingies in pre-commit action * changelog * changelog * Apply suggestions from code review Co-authored-by: Techassi * cargo fmt --------- Co-authored-by: Techassi --- .github/workflows/pr_pre-commit.yml | 5 +++++ .pre-commit-config.yaml | 2 +- README.md | 3 +-- crate-hashes.json | 2 +- rust/stackablectl/CHANGELOG.md | 5 +++++ rust/stackablectl/src/cmds/operator.rs | 21 +++++++++++++-------- web/build.rs | 18 +++++++++++------- 7 files changed, 37 insertions(+), 19 deletions(-) diff --git a/.github/workflows/pr_pre-commit.yml b/.github/workflows/pr_pre-commit.yml index fca98d91..d107e683 100644 --- a/.github/workflows/pr_pre-commit.yml +++ b/.github/workflows/pr_pre-commit.yml @@ -19,6 +19,11 @@ jobs: - uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 #v30 with: github_access_token: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + with: + node-version: 18 + cache: yarn + - run: yarn install --frozen-lockfile - uses: stackabletech/actions/run-pre-commit@9bd13255f286e4b7a654617268abe1b2f37c3e0a # v0.3.0 with: rust: ${{ env.RUST_TOOLCHAIN_VERSION }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e82032b3..01fafc2a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,7 +23,7 @@ repos: - id: fmt args: ["--all", "--", "--check"] - id: clippy - args: ["--all-targets", "--", "-D", "warnings"] + args: ["--all-targets", "--all-features", "--", "-D", "warnings"] - repo: https://github.com/adrienverge/yamllint rev: 81e9f98ffd059efe8aa9c1b1a42e5cce61b640c6 # 1.35.1 diff --git a/README.md b/README.md index 2e0c3c35..688e4083 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ hooks are: - [`yamllint`](https://github.com/adrienverge/yamllint): Runs linting on all YAML files - [`markdownlint`](https://github.com/igorshubovych/markdownlint-cli): Runs linting on all Markdown files - [`prettier`](https://github.com/pre-commit/mirrors-prettier): Runs prettier on files located in `web` -- `cargo clippy -- -D warnings`: Runs Clippy on all files and errors on warnings +- `cargo clippy --all-targets --all-features -- -D warnings`: Runs Clippy on all files and errors on warnings - `cargo fmt -- --check`: Checks if Rust code needs formatting - `cargo xtask gen-comp`: Runs shell completions generation for `stackablectl` - `cargo xtask gen-man`: Runs man page generation for `stackablectl` @@ -77,4 +77,3 @@ hooks are: [pre-commit]: https://pre-commit.com/ [web-readme]: ./web/README.md [lib-readme]: ./rust/stackable-cockpit/README.md -[xtasks]: ./xtask/src/main.rs diff --git a/crate-hashes.json b/crate-hashes.json index 8725a492..d6326daf 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -2,4 +2,4 @@ "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.74.0#stackable-operator-derive@0.3.1": "1g1a0v98wlcb36ibwv1nv75g3b3s1mjmaps443fc2w2maam94lya", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.74.0#stackable-operator@0.74.0": "1g1a0v98wlcb36ibwv1nv75g3b3s1mjmaps443fc2w2maam94lya", "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#product-config@0.7.0": "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny" -} \ No newline at end of file +} diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 33c72ee1..c99925e9 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -8,6 +8,11 @@ All notable changes to this project will be documented in this file. - Add shell completions for Nushell and Elvish ([#337]). +### Fixed + +- Sort operator versions by semver version instead of alphabetically ([#336]). + +[#336]: https://github.com/stackabletech/stackable-cockpit/pull/336 [#337]: https://github.com/stackabletech/stackable-cockpit/pull/337 ## [24.11.0] - 2024-11-18 diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 28ca2cad..7e955b10 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -130,6 +130,12 @@ pub enum CmdError { #[snafu(display("invalid repository name"))] InvalidRepoName { source: InvalidRepoNameError }, + #[snafu(display("invalid semantic helm chart version {version:?}"))] + InvalidHelmChartVersion { + source: semver::Error, + version: String, + }, + #[snafu(display("unknown repository name '{name}'"))] UnknownRepoName { name: String }, @@ -524,16 +530,15 @@ where Some(entries) => { let mut versions = entries .iter() - .map(|e| Version::parse(&e.version)) - .map_while(|r| match r { - Ok(v) => Some(v), - Err(_) => None, + .map(|entry| { + Version::parse(&entry.version).with_context(|_| InvalidHelmChartVersionSnafu { + version: entry.version.clone(), + }) }) - .map(|v| v.to_string()) - .collect::>(); - + .collect::, _>>()?; versions.sort(); - Ok(versions) + + Ok(versions.iter().map(|version| version.to_string()).collect()) } None => Ok(vec![]), } diff --git a/web/build.rs b/web/build.rs index e7a47b88..3e8de5e0 100644 --- a/web/build.rs +++ b/web/build.rs @@ -16,18 +16,22 @@ fn main() { ] { println!("cargo:rerun-if-changed={tracked_file}"); } - let vite_status = Command::new("yarn") + + let mut vite_command = Command::new("yarn"); + vite_command .arg("run") .arg("build") .arg("--outDir") .arg(&vite_out_dir) .arg("--base") - .arg("/ui/") - .status() - .unwrap(); - if !vite_status.success() { - panic!("web-ui build failed: {vite_status}"); - } + .arg("/ui/"); + + let vite_status = vite_command.status(); + match vite_status { + Ok(vite_status) if vite_status.success() => {} + _ => panic!("web-ui build failed: command {vite_command:?} resulted in {vite_status:?}"), + }; + let mut asset_map = phf_codegen::Map::new(); for asset_file in vite_out_dir.join("assets").read_dir().unwrap() { let asset_file = asset_file.unwrap();