From 726ba8b25635663746944554c3a2e240d813b894 Mon Sep 17 00:00:00 2001 From: default <216188+jdx@users.noreply.github.com> Date: Sun, 16 Aug 2026 23:46:06 +0000 Subject: [PATCH 1/2] test(go): check in mise's generated tables, so the emitter cannot drift unnoticed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The generator landed in the commit before this one with snapshot tests over small fixtures, which prove it emits what it meant to and nothing about whether the result works. This is the other half: mise's committed spec, generated into `go/internal/shadow/mise`, checked in, and parsed against. Checked in rather than built by the test, for the two reasons the Rust shadows are: a reviewer can read the diff when the emitter's vocabulary changes, and CI runs `mise run gen-go` and fails if regenerating produces one. A change to the generator that nobody meant now has to be committed rather than discovered. mise is the fixture because it is the largest usage CLI there is — 211 commands, 711 flags, 128 positionals, four deep — and because every shape that has been awkward to express came from it. The cases are invocations out of its own docs, hand-written on purpose: what the generator produces is only worth checking if it parses the words users actually type. They cover the `[ARGS]… [-- ARGS_LAST]…` split that made the Rust derive's validation wrong, a hidden alias selecting a command, and a root global reaching a command two levels down. Two properties are measured here rather than at fixture scale, because scale is what would break them: Keys are unique and dense. Generated code dispatches on a Key, so two entries sharing one would bind the wrong field. The Rust derive hashes its way around this because two macro expansions cannot see each other; a generator sees the whole spec and can count, so a collision would be inexcusable rather than unlucky — and this checks it across all 989 entries. A parse still allocates nothing. A scope lookup that collected flags into a slice, or a walk that built one per token, is invisible on a spec with four flags and obvious on one with 711. 110ns and 0 allocations for `mise use -g node@20`. One case pins a hole rather than a property: `run --wat` is `unexpected_arg`, because mise's spec gives `run` no positional at all — it clears them and adds `mount run="mise tasks --usage"`, so task names come from running that, and binding does not resolve mounts. When mounts are answered that case changes, and pinning it means it changes loudly. Co-Authored-By: Claude Opus 5 --- .github/workflows/test.yml | 7 +- go/README.md | 33 +- go/internal/shadow/mise/parse_test.go | 205 ++ go/internal/shadow/mise/tables.go | 3776 +++++++++++++++++++++++++ mise.toml | 12 + 5 files changed, 4023 insertions(+), 10 deletions(-) create mode 100644 go/internal/shadow/mise/parse_test.go create mode 100644 go/internal/shadow/mise/tables.go diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 426760051..014f2a6b9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -55,10 +55,13 @@ jobs: # Same reasoning as `render`: the shadow is checked in, so a change to the derive's # vocabulary that would alter it has to be committed rather than discovered later. - run: mise r gen-shadow - - name: assert render and gen-shadow produce no diff + # And the Go tables, for the same reason: they are checked in, so a change to + # the emitter that nobody meant has to show up as a diff here. + - run: mise r gen-go + - name: assert render, gen-shadow and gen-go produce no diff run: | if [ -n "$(git status --porcelain)" ]; then - echo "::error::'mise run render' or 'mise run gen-shadow' produced changes. Run them locally and commit." + echo "::error::'mise run render', 'mise run gen-shadow' or 'mise run gen-go' produced changes. Run them locally and commit." git status git diff exit 1 diff --git a/go/README.md b/go/README.md index 9b6e9dc16..08e89fc80 100644 --- a/go/README.md +++ b/go/README.md @@ -58,7 +58,7 @@ failure paths as well as the success ones. A mise-sized binding runs in 57 ns. or argument — and reports each occurrence as an event. Everything that needs to know a value's _type_ (`required`, `choices`, `env` fallback, defaults, `var_min`, `overrides`) belongs to the layer that owns the target struct, exactly as it does -in Rust. That is why the corpus's 22 post-binding vectors are skipped here rather +in Rust. That is why the corpus's post-binding vectors are skipped here rather than failed. ## Using it @@ -80,7 +80,19 @@ if err := p.Err(); err != nil { } ``` -Tables are meant to be generated. Writing them by hand is supported, and is what +Tables are generated from a spec by the usage CLI, which is what Go has instead of +a derive macro: + +```go +//go:generate usage generate go -f mycli.usage.kdl -o tables.go +``` + +The generated file exports `Root` to pass to `argv.New`, and a key constant per +command, flag and argument. Dispatch on those rather than on `Name`: it costs no +string comparison, and a flag renamed in the spec then fails to compile instead of +silently never matching. + +Writing tables by hand is supported too, and is what [`argv/parser_test.go`](argv/parser_test.go) does: ```go @@ -102,21 +114,26 @@ an implementation in any language can run it. `go/conformance` runs all of it: mise run test:go ``` -101 binding vectors pass; the 22 post-binding ones are skipped with the reason -recorded. A vector's spec is KDL, and this module deliberately has no KDL parser — +All 122 binding vectors pass; the 30 post-binding ones are skipped with the reason +recorded. The count is worth watching rather than just quoting: it was 101 when +this module landed, and grew when the corpus imported the argv questions clap's +suite answers — which the Go parser then answered without a change. A vector's spec is KDL, and this module deliberately has no KDL parser — `usage generate json` does the lowering, which is why the suite needs the CLI built. That split is the same one an adopter gets: tables are generated once at build time by a maintainer who has the usage CLI, and the shipped binary never sees a spec. +`internal/shadow/mise` holds the tables generated from mise's committed spec — 211 +commands, 711 flags — checked in so a reviewer sees the diff when the emitter +changes, and regenerated by `mise run gen-go`. It is where the zero-allocation +claim is measured at real scale rather than against a fixture with four flags: +110 ns per parse, 0 allocations. + ## What is missing -- **The generator.** `usage generate go`, emitting the tables above from a spec. - Until it exists, tables are written by hand or built at run time from a lowered - spec via `internal/spec`. - **The typed layer.** Binding produces events; something has to turn them into a struct with `int` and `time.Duration` fields, and apply the post-binding rules. - This is where the corpus's 22 skipped vectors get answered. + This is where the corpus's skipped post-binding vectors get answered. - **Help and errors.** A cold table of help text, and rendering worth reading. - **Completions.** The Rust side serves these from the parser's own scope rules so that what is offered and what is accepted cannot disagree; the hooks for it diff --git a/go/internal/shadow/mise/parse_test.go b/go/internal/shadow/mise/parse_test.go new file mode 100644 index 000000000..ffb301353 --- /dev/null +++ b/go/internal/shadow/mise/parse_test.go @@ -0,0 +1,205 @@ +// Package mise holds generated parse tables for mise's committed spec, and the +// tests that keep the generator honest. +// +// The tables are checked in rather than built by the test, for the same two +// reasons the Rust shadows are: a reviewer can read the diff when the emitter's +// vocabulary changes, and CI can assert that regenerating produces no diff, so a +// change to the generator that nobody meant cannot land unnoticed. `mise run +// gen-go` regenerates. +// +// mise is the fixture because it is the largest usage CLI there is — 211 +// commands, 711 flags, 128 positionals, four levels deep — and because every +// shape that has been awkward to express came from it. +package mise + +import ( + "strings" + "testing" + + "github.com/jdx/usage/go/argv" +) + +// bind runs a command line and renders it as one line, so a table of cases reads +// as a table. +func bind(args ...string) string { + var out []string + p := argv.New(Root, args) + for p.Next() { + ev := p.Event() + switch ev.Kind { + case argv.KindCommand: + out = append(out, "cmd:"+ev.Command.Name) + case argv.KindFlag: + s := "flag:" + ev.Flag.Name + if ev.HasValue { + s += "=" + ev.Value + } + out = append(out, s) + case argv.KindArg: + out = append(out, "arg:"+ev.Arg.Name+"="+ev.Value) + } + } + if err := p.Err(); err != nil { + out = append(out, "err:"+err.(*argv.Error).Code.String()) + } + return strings.Join(out, " ") +} + +// TestRealCommandLines parses invocations out of mise's own documentation. +// +// Hand-written rather than generated: what the generator produces is only worth +// checking if it parses the words mise's users actually type. +func TestRealCommandLines(t *testing.T) { + cases := []struct { + name string + argv []string + want string + }{ + { + "a tool is installed globally", + []string{"use", "-g", "node@20"}, + "cmd:use flag:global arg:TOOL@VERSION=node@20", + }, + { + // The shape that made the Rust derive's validation wrong: `[ARGS]…` + // before the separator and `[-- ARGS_LAST]…` after it. + "a task runs with arguments after a separator", + []string{"tasks", "run", "build", "extra", "--dry-run", "--", "--verbose"}, + "cmd:tasks cmd:run arg:TASK=build arg:ARGS=extra flag:dry-run arg:ARGS_LAST=--verbose", + }, + { + // `x` is a hidden alias in the spec, and hiding is a help-output concern: + // binding never reads it, so the alias selects the command as any other + // would. + "an alias selects the command it names", + []string{"x", "node@20", "--", "node", "-v"}, + "cmd:exec arg:TOOL@VERSION=node@20 arg:COMMAND=node arg:COMMAND=-v", + }, + { + "a nested command with a flag of its own", + []string{"config", "ls", "--no-header"}, + "cmd:config cmd:ls flag:no-header", + }, + { + // A global declared on the root, given after a subcommand word two levels + // down. Scope runs downward, and the generator resolved that into the + // table rather than leaving the parser to walk for it. + "a root global reaches a nested command", + []string{"config", "ls", "--cd", "/tmp"}, + "cmd:config cmd:ls flag:cd=/tmp", + }, + { + // A usage spec is often parsing a command line whose flags belong to + // something else, so an unrecognized one is data in transit rather than a + // typo, and mise's spec does not ask for the strict reading. + "an unknown flag becomes a word", + []string{"use", "--wat"}, + "cmd:use arg:TOOL@VERSION=--wat", + }, + { + // The same token with nothing to hold it. `run` declares no positional at + // all in the committed spec — mise clears them and adds `mount run="mise + // tasks --usage"`, so task names come from running that — and a mount is + // not something binding resolves. So the word has nowhere to land. + // + // Pinned because it is the visible edge of a known hole rather than a + // property worth having: when mounts are answered, this case changes, and + // it should change loudly. + "a word with no argument to hold it is an error", + []string{"run", "--wat"}, + "cmd:run err:unexpected_arg", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + if got := bind(c.argv...); got != c.want { + t.Errorf("%v\n want %s\n got %s", c.argv, c.want, got) + } + }) + } +} + +// TestKeysAreUniqueAndDense checks the property generated dispatch depends on. +// +// Code switches on a Key, so two entries sharing one would bind the wrong field — +// the failure the Rust derive hashes its way around because two macro expansions +// cannot see each other. A generator sees the whole spec and can simply count, so +// there is no excuse for a collision, and this is where that is checked at mise's +// scale rather than a fixture's. +func TestKeysAreUniqueAndDense(t *testing.T) { + seen := map[uint64]string{} + var walk func(*argv.Command) + claim := func(key uint64, what string) { + if prev, ok := seen[key]; ok { + t.Errorf("key %d is used by both %s and %s", key, prev, what) + } + seen[key] = what + } + walk = func(c *argv.Command) { + claim(c.Key, "command "+c.Name) + for _, f := range c.Flags { + claim(f.Key, "flag "+f.Name+" of "+c.Name) + } + for _, a := range c.Args { + claim(a.Key, "arg "+a.Name+" of "+c.Name) + } + for _, sub := range c.Subcommands { + walk(sub) + } + } + walk(Root) + + // Dense from 1, which is what makes a key usable as an index if anything ever + // wants one. + for i := uint64(1); i <= uint64(len(seen)); i++ { + if _, ok := seen[i]; !ok { + t.Errorf("key %d was never handed out, so the keys are not dense", i) + } + } + if len(seen) < 900 { + t.Errorf("only %d entries: mise's spec is much larger than that, so the "+ + "tables are probably truncated", len(seen)) + } +} + +// TestParseAllocatesNothingAtScale is the zero-allocation claim, measured against +// a real CLI rather than a fixture with four flags. +// +// The tables being large is exactly what could break it: a lookup that collected +// flags in scope, or a scope walk that built a slice, would be invisible on a +// toy spec and obvious here. +func TestParseAllocatesNothingAtScale(t *testing.T) { + for _, args := range [][]string{ + {"use", "-g", "node@20"}, + {"tasks", "run", "build", "extra", "--dry-run", "--", "--verbose"}, + {"config", "ls", "--cd", "/tmp"}, + } { + args := args + t.Run(strings.Join(args, " "), func(t *testing.T) { + n := testing.AllocsPerRun(100, func() { + p := argv.New(Root, args) + for p.Next() { + _ = p.Event() + } + _ = p.Err() + }) + if n != 0 { + t.Errorf("want 0 allocations, got %v", n) + } + }) + } +} + +// BenchmarkParse is the number the README quotes, at mise's scale. +func BenchmarkParse(b *testing.B) { + args := []string{"use", "-g", "node@20"} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + p := argv.New(Root, args) + for p.Next() { + _ = p.Event() + } + } +} diff --git a/go/internal/shadow/mise/tables.go b/go/internal/shadow/mise/tables.go new file mode 100644 index 000000000..c217f265e --- /dev/null +++ b/go/internal/shadow/mise/tables.go @@ -0,0 +1,3776 @@ +// Code generated by `usage generate go`. DO NOT EDIT. +// +// Binding tables for `mise`, read by +// [github.com/jdx/usage/go/argv]. Regenerate rather than editing: the spec is +// the definition, and a hand-edit here is a difference no reviewer can see. +// +// These are package-level variables holding plain data, so the linker lays them +// out and nothing runs before main. + +package mise + +import "github.com/jdx/usage/go/argv" + +// Keys identify a table entry without a string comparison: switch on the Key an +// event carries rather than on its Name, which is there for diagnostics. +const ( + CmdRoot uint64 = 1 + FlagContinueOnError uint64 = 2 + FlagCd uint64 = 3 + FlagEnv uint64 = 4 + FlagForce uint64 = 5 + FlagJobs uint64 = 6 + FlagDryRun uint64 = 7 + FlagProfile uint64 = 8 + FlagQuiet uint64 = 9 + FlagShell uint64 = 10 + FlagTool uint64 = 11 + FlagVerbose uint64 = 12 + FlagVersion uint64 = 13 + FlagYes uint64 = 14 + FlagDebug uint64 = 15 + FlagLogLevel uint64 = 16 + FlagNoConfig uint64 = 17 + FlagNoEnv uint64 = 18 + FlagNoHooks uint64 = 19 + FlagNoTimings uint64 = 20 + FlagOutput uint64 = 21 + FlagRaw uint64 = 22 + FlagLocked uint64 = 23 + FlagSilent uint64 = 24 + FlagTimings uint64 = 25 + FlagTrace uint64 = 26 + ArgTask uint64 = 27 + ArgTaskArgs uint64 = 28 + ArgTaskArgsLast uint64 = 29 + CmdActivate uint64 = 30 + FlagActivateQuiet uint64 = 31 + FlagActivateShell uint64 = 32 + FlagActivateNoHookEnv uint64 = 33 + FlagActivateShims uint64 = 34 + FlagActivateStatus uint64 = 35 + ArgActivateShellType uint64 = 36 + CmdToolAlias uint64 = 37 + FlagToolAliasTool uint64 = 38 + FlagToolAliasNoHeader uint64 = 39 + CmdToolAliasGet uint64 = 40 + ArgToolAliasGetTool uint64 = 41 + ArgToolAliasGetAlias uint64 = 42 + CmdToolAliasLs uint64 = 43 + FlagToolAliasLsNoHeader uint64 = 44 + ArgToolAliasLsTool uint64 = 45 + CmdToolAliasSet uint64 = 46 + ArgToolAliasSetTool uint64 = 47 + ArgToolAliasSetAlias uint64 = 48 + ArgToolAliasSetValue uint64 = 49 + CmdToolAliasUnset uint64 = 50 + ArgToolAliasUnsetTool uint64 = 51 + ArgToolAliasUnsetAlias uint64 = 52 + CmdAsdf uint64 = 53 + ArgAsdfArgs uint64 = 54 + CmdBackends uint64 = 55 + CmdBackendsLs uint64 = 56 + CmdBinPaths uint64 = 57 + FlagBinPathsBinNames uint64 = 58 + FlagBinPathsJson uint64 = 59 + ArgBinPathsToolVersion uint64 = 60 + CmdBootstrap uint64 = 61 + FlagBootstrapDryRun uint64 = 62 + FlagBootstrapYes uint64 = 63 + FlagBootstrapForceDotfiles uint64 = 64 + FlagBootstrapOnly uint64 = 65 + FlagBootstrapPromptSecrets uint64 = 66 + FlagBootstrapSkip uint64 = 67 + FlagBootstrapUpdate uint64 = 68 + CmdBootstrapApplyAccountPlan uint64 = 69 + CmdBootstrapApplyServicePlan uint64 = 70 + CmdBootstrapApplyFirewallPlan uint64 = 71 + CmdBootstrapApplySystemPlan uint64 = 72 + CmdBootstrapInspectSystemFiles uint64 = 73 + CmdBootstrapInspectFirewallPlan uint64 = 74 + CmdBootstrapAccounts uint64 = 75 + CmdBootstrapAccountsApply uint64 = 76 + FlagBootstrapAccountsApplyDryRun uint64 = 77 + FlagBootstrapAccountsApplyYes uint64 = 78 + CmdBootstrapAccountsStatus uint64 = 79 + FlagBootstrapAccountsStatusJson uint64 = 80 + FlagBootstrapAccountsStatusMissing uint64 = 81 + CmdBootstrapCompose uint64 = 82 + CmdBootstrapComposeApply uint64 = 83 + FlagBootstrapComposeApplyDryRun uint64 = 84 + FlagBootstrapComposeApplyYes uint64 = 85 + CmdBootstrapComposeStatus uint64 = 86 + FlagBootstrapComposeStatusJson uint64 = 87 + FlagBootstrapComposeStatusMissing uint64 = 88 + CmdBootstrapDotfiles uint64 = 89 + CmdBootstrapDotfilesAdd uint64 = 90 + FlagBootstrapDotfilesAddForce uint64 = 91 + FlagBootstrapDotfilesAddGlobal uint64 = 92 + FlagBootstrapDotfilesAddLocal uint64 = 93 + FlagBootstrapDotfilesAddMode uint64 = 94 + FlagBootstrapDotfilesAddDryRun uint64 = 95 + FlagBootstrapDotfilesAddNoApply uint64 = 96 + FlagBootstrapDotfilesAddPath uint64 = 97 + FlagBootstrapDotfilesAddSource uint64 = 98 + FlagBootstrapDotfilesAddYes uint64 = 99 + ArgBootstrapDotfilesAddTarget uint64 = 100 + CmdBootstrapDotfilesApply uint64 = 101 + FlagBootstrapDotfilesApplyForce uint64 = 102 + FlagBootstrapDotfilesApplyDryRun uint64 = 103 + FlagBootstrapDotfilesApplyYes uint64 = 104 + ArgBootstrapDotfilesApplyTarget uint64 = 105 + CmdBootstrapDotfilesEdit uint64 = 106 + FlagBootstrapDotfilesEditApply uint64 = 107 + FlagBootstrapDotfilesEditMode uint64 = 108 + FlagBootstrapDotfilesEditSource uint64 = 109 + FlagBootstrapDotfilesEditYes uint64 = 110 + ArgBootstrapDotfilesEditTarget uint64 = 111 + CmdBootstrapDotfilesStatus uint64 = 112 + FlagBootstrapDotfilesStatusJson uint64 = 113 + FlagBootstrapDotfilesStatusMissing uint64 = 114 + ArgBootstrapDotfilesStatusTarget uint64 = 115 + CmdBootstrapDotfilesUnapply uint64 = 116 + FlagBootstrapDotfilesUnapplyForce uint64 = 117 + FlagBootstrapDotfilesUnapplyDryRun uint64 = 118 + FlagBootstrapDotfilesUnapplyYes uint64 = 119 + ArgBootstrapDotfilesUnapplyTarget uint64 = 120 + CmdBootstrapFiles uint64 = 121 + CmdBootstrapFilesApply uint64 = 122 + FlagBootstrapFilesApplyDryRun uint64 = 123 + FlagBootstrapFilesApplyYes uint64 = 124 + FlagBootstrapFilesApplyPromptSecrets uint64 = 125 + CmdBootstrapFilesStatus uint64 = 126 + FlagBootstrapFilesStatusJson uint64 = 127 + FlagBootstrapFilesStatusMissing uint64 = 128 + FlagBootstrapFilesStatusPromptSecrets uint64 = 129 + CmdBootstrapFirewall uint64 = 130 + CmdBootstrapFirewallApply uint64 = 131 + FlagBootstrapFirewallApplyDryRun uint64 = 132 + FlagBootstrapFirewallApplyYes uint64 = 133 + CmdBootstrapFirewallStatus uint64 = 134 + FlagBootstrapFirewallStatusJson uint64 = 135 + FlagBootstrapFirewallStatusMissing uint64 = 136 + CmdBootstrapLaunchd uint64 = 137 + CmdBootstrapLaunchdApply uint64 = 138 + FlagBootstrapLaunchdApplyDryRun uint64 = 139 + FlagBootstrapLaunchdApplyYes uint64 = 140 + CmdBootstrapLaunchdStatus uint64 = 141 + FlagBootstrapLaunchdStatusJson uint64 = 142 + FlagBootstrapLaunchdStatusMissing uint64 = 143 + CmdBootstrapLinux uint64 = 144 + CmdBootstrapLinuxSystemdUnits uint64 = 145 + CmdBootstrapLinuxSystemdUnitsApply uint64 = 146 + FlagBootstrapLinuxSystemdUnitsApplyDryRun uint64 = 147 + FlagBootstrapLinuxSystemdUnitsApplyYes uint64 = 148 + CmdBootstrapLinuxSystemdUnitsStatus uint64 = 149 + FlagBootstrapLinuxSystemdUnitsStatusJson uint64 = 150 + FlagBootstrapLinuxSystemdUnitsStatusMissing uint64 = 151 + CmdBootstrapMacos uint64 = 152 + CmdBootstrapMacosDefaults uint64 = 153 + CmdBootstrapMacosDefaultsApply uint64 = 154 + FlagBootstrapMacosDefaultsApplyDryRun uint64 = 155 + FlagBootstrapMacosDefaultsApplyYes uint64 = 156 + CmdBootstrapMacosDefaultsStatus uint64 = 157 + FlagBootstrapMacosDefaultsStatusJson uint64 = 158 + FlagBootstrapMacosDefaultsStatusMissing uint64 = 159 + CmdBootstrapMacosLaunchdAgents uint64 = 160 + CmdBootstrapMacosLaunchdAgentsApply uint64 = 161 + FlagBootstrapMacosLaunchdAgentsApplyDryRun uint64 = 162 + FlagBootstrapMacosLaunchdAgentsApplyYes uint64 = 163 + CmdBootstrapMacosLaunchdAgentsStatus uint64 = 164 + FlagBootstrapMacosLaunchdAgentsStatusJson uint64 = 165 + FlagBootstrapMacosLaunchdAgentsStatusMissing uint64 = 166 + CmdBootstrapMacosDefaults2 uint64 = 167 + CmdBootstrapMacosDefaultsApply2 uint64 = 168 + FlagBootstrapMacosDefaultsApplyDryRun2 uint64 = 169 + FlagBootstrapMacosDefaultsApplyYes2 uint64 = 170 + CmdBootstrapMacosDefaultsStatus2 uint64 = 171 + FlagBootstrapMacosDefaultsStatusJson2 uint64 = 172 + FlagBootstrapMacosDefaultsStatusMissing2 uint64 = 173 + CmdBootstrapMiseShellActivate uint64 = 174 + CmdBootstrapMiseShellActivateApply uint64 = 175 + FlagBootstrapMiseShellActivateApplyDryRun uint64 = 176 + FlagBootstrapMiseShellActivateApplyYes uint64 = 177 + CmdBootstrapMiseShellActivateStatus uint64 = 178 + FlagBootstrapMiseShellActivateStatusJson uint64 = 179 + FlagBootstrapMiseShellActivateStatusMissing uint64 = 180 + CmdBootstrapPackages uint64 = 181 + CmdBootstrapPackagesApply uint64 = 182 + FlagBootstrapPackagesApplyManager uint64 = 183 + FlagBootstrapPackagesApplyDryRun uint64 = 184 + FlagBootstrapPackagesApplyYes uint64 = 185 + FlagBootstrapPackagesApplyUpdate uint64 = 186 + ArgBootstrapPackagesApplyPackage uint64 = 187 + CmdBootstrapPackagesBrew uint64 = 188 + CmdBootstrapPackagesBrewTap uint64 = 189 + FlagBootstrapPackagesBrewTapLocal uint64 = 190 + FlagBootstrapPackagesBrewTapDryRun uint64 = 191 + FlagBootstrapPackagesBrewTapPath uint64 = 192 + ArgBootstrapPackagesBrewTapTap uint64 = 193 + ArgBootstrapPackagesBrewTapUrl uint64 = 194 + CmdBootstrapPackagesBrewUntap uint64 = 195 + FlagBootstrapPackagesBrewUntapLocal uint64 = 196 + FlagBootstrapPackagesBrewUntapDryRun uint64 = 197 + FlagBootstrapPackagesBrewUntapPath uint64 = 198 + ArgBootstrapPackagesBrewUntapTaps uint64 = 199 + CmdBootstrapPackagesImport uint64 = 200 + FlagBootstrapPackagesImportEnv uint64 = 201 + FlagBootstrapPackagesImportGlobal uint64 = 202 + FlagBootstrapPackagesImportManager uint64 = 203 + FlagBootstrapPackagesImportAll uint64 = 204 + FlagBootstrapPackagesImportDryRun uint64 = 205 + FlagBootstrapPackagesImportPath uint64 = 206 + CmdBootstrapPackagesPrune uint64 = 207 + FlagBootstrapPackagesPruneManager uint64 = 208 + FlagBootstrapPackagesPruneDryRun uint64 = 209 + FlagBootstrapPackagesPruneYes uint64 = 210 + CmdBootstrapPackagesStatus uint64 = 211 + FlagBootstrapPackagesStatusJson uint64 = 212 + FlagBootstrapPackagesStatusMissing uint64 = 213 + CmdBootstrapPackagesUpgrade uint64 = 214 + FlagBootstrapPackagesUpgradeManager uint64 = 215 + FlagBootstrapPackagesUpgradeDryRun uint64 = 216 + FlagBootstrapPackagesUpgradeYes uint64 = 217 + ArgBootstrapPackagesUpgradePackage uint64 = 218 + CmdBootstrapPackagesUse uint64 = 219 + FlagBootstrapPackagesUseEnv uint64 = 220 + FlagBootstrapPackagesUseGlobal uint64 = 221 + FlagBootstrapPackagesUseDryRun uint64 = 222 + FlagBootstrapPackagesUsePath uint64 = 223 + FlagBootstrapPackagesUseYes uint64 = 224 + ArgBootstrapPackagesUsePackage uint64 = 225 + CmdBootstrapPlan uint64 = 226 + FlagBootstrapPlanJson uint64 = 227 + FlagBootstrapPlanDetailedExitcode uint64 = 228 + FlagBootstrapPlanPromptSecrets uint64 = 229 + CmdBootstrapPlugins uint64 = 230 + CmdBootstrapPluginsApply uint64 = 231 + FlagBootstrapPluginsApplyDryRun uint64 = 232 + CmdBootstrapPluginsStatus uint64 = 233 + FlagBootstrapPluginsStatusMissing uint64 = 234 + CmdBootstrapRemote uint64 = 235 + FlagBootstrapRemoteAll uint64 = 236 + FlagBootstrapRemoteBootstrapCommand uint64 = 237 + FlagBootstrapRemoteConnectTimeout uint64 = 238 + FlagBootstrapRemoteExclude uint64 = 239 + FlagBootstrapRemoteFailFast uint64 = 240 + FlagBootstrapRemoteForceDotfiles uint64 = 241 + FlagBootstrapRemoteHost uint64 = 242 + FlagBootstrapRemoteIdentityFile uint64 = 243 + FlagBootstrapRemoteDryRun uint64 = 244 + FlagBootstrapRemoteKeepStaging uint64 = 245 + FlagBootstrapRemoteMiseBin uint64 = 246 + FlagBootstrapRemoteOnly uint64 = 247 + FlagBootstrapRemotePort uint64 = 248 + FlagBootstrapRemotePromptSecrets uint64 = 249 + FlagBootstrapRemoteRemoteMise uint64 = 250 + FlagBootstrapRemoteSkip uint64 = 251 + FlagBootstrapRemoteSource uint64 = 252 + FlagBootstrapRemoteSshOption uint64 = 253 + FlagBootstrapRemoteTag uint64 = 254 + FlagBootstrapRemoteUpdate uint64 = 255 + FlagBootstrapRemoteYes uint64 = 256 + ArgBootstrapRemoteTarget uint64 = 257 + CmdBootstrapRepos uint64 = 258 + CmdBootstrapReposApply uint64 = 259 + FlagBootstrapReposApplyDryRun uint64 = 260 + FlagBootstrapReposApplyYes uint64 = 261 + CmdBootstrapReposExec uint64 = 262 + FlagBootstrapReposExecContinueOnError uint64 = 263 + FlagBootstrapReposExecDryRun uint64 = 264 + ArgBootstrapReposExecPath uint64 = 265 + ArgBootstrapReposExecCommand uint64 = 266 + CmdBootstrapReposStatus uint64 = 267 + FlagBootstrapReposStatusJson uint64 = 268 + FlagBootstrapReposStatusMissing uint64 = 269 + CmdBootstrapReposUpdate uint64 = 270 + FlagBootstrapReposUpdateDryRun uint64 = 271 + FlagBootstrapReposUpdateYes uint64 = 272 + ArgBootstrapReposUpdatePath uint64 = 273 + CmdBootstrapSecrets uint64 = 274 + CmdBootstrapSecretsStatus uint64 = 275 + FlagBootstrapSecretsStatusJson uint64 = 276 + FlagBootstrapSecretsStatusMissing uint64 = 277 + CmdBootstrapServices uint64 = 278 + CmdBootstrapServicesApply uint64 = 279 + FlagBootstrapServicesApplyDryRun uint64 = 280 + FlagBootstrapServicesApplyYes uint64 = 281 + CmdBootstrapServicesStatus uint64 = 282 + FlagBootstrapServicesStatusJson uint64 = 283 + FlagBootstrapServicesStatusMissing uint64 = 284 + CmdBootstrapStatus uint64 = 285 + FlagBootstrapStatusJson uint64 = 286 + FlagBootstrapStatusMissing uint64 = 287 + FlagBootstrapStatusPromptSecrets uint64 = 288 + CmdBootstrapSystemd uint64 = 289 + CmdBootstrapSystemdApply uint64 = 290 + FlagBootstrapSystemdApplyDryRun uint64 = 291 + FlagBootstrapSystemdApplyYes uint64 = 292 + CmdBootstrapSystemdStatus uint64 = 293 + FlagBootstrapSystemdStatusJson uint64 = 294 + FlagBootstrapSystemdStatusMissing uint64 = 295 + CmdBootstrapUser uint64 = 296 + CmdBootstrapUserApply uint64 = 297 + FlagBootstrapUserApplyDryRun uint64 = 298 + FlagBootstrapUserApplyYes uint64 = 299 + CmdBootstrapUserStatus uint64 = 300 + FlagBootstrapUserStatusJson uint64 = 301 + FlagBootstrapUserStatusMissing uint64 = 302 + CmdCache uint64 = 303 + CmdCacheClear uint64 = 304 + FlagCacheClearOutdate uint64 = 305 + FlagCacheClearTask uint64 = 306 + ArgCacheClearTool uint64 = 307 + CmdCachePath uint64 = 308 + CmdCachePrune uint64 = 309 + FlagCachePruneVerbose uint64 = 310 + FlagCachePruneDryRun uint64 = 311 + ArgCachePruneTool uint64 = 312 + CmdCacheTask uint64 = 313 + FlagCacheTaskJson uint64 = 314 + ArgCacheTaskTask uint64 = 315 + CmdCompletion uint64 = 316 + FlagCompletionShell uint64 = 317 + FlagCompletionIncludeBashCompletionLib uint64 = 318 + FlagCompletionUsage uint64 = 319 + ArgCompletionShell uint64 = 320 + CmdConfig uint64 = 321 + FlagConfigJson uint64 = 322 + FlagConfigNoHeader uint64 = 323 + FlagConfigTrackedConfigs uint64 = 324 + CmdConfigGet uint64 = 325 + FlagConfigGetFile uint64 = 326 + ArgConfigGetKey uint64 = 327 + CmdConfigLs uint64 = 328 + FlagConfigLsJson uint64 = 329 + FlagConfigLsNoHeader uint64 = 330 + FlagConfigLsTrackedConfigs uint64 = 331 + CmdConfigSet uint64 = 332 + FlagConfigSetFile uint64 = 333 + FlagConfigSetType uint64 = 334 + ArgConfigSetKey uint64 = 335 + ArgConfigSetValue uint64 = 336 + CmdCurrent uint64 = 337 + ArgCurrentPlugin uint64 = 338 + CmdDeactivate uint64 = 339 + CmdDirenv uint64 = 340 + CmdDirenvActivate uint64 = 341 + CmdDirenvEnvrc uint64 = 342 + CmdDirenvExec uint64 = 343 + CmdDotfiles uint64 = 344 + CmdDotfilesAdd uint64 = 345 + FlagDotfilesAddForce uint64 = 346 + FlagDotfilesAddGlobal uint64 = 347 + FlagDotfilesAddLocal uint64 = 348 + FlagDotfilesAddMode uint64 = 349 + FlagDotfilesAddDryRun uint64 = 350 + FlagDotfilesAddNoApply uint64 = 351 + FlagDotfilesAddPath uint64 = 352 + FlagDotfilesAddSource uint64 = 353 + FlagDotfilesAddYes uint64 = 354 + ArgDotfilesAddTarget uint64 = 355 + CmdDotfilesApply uint64 = 356 + FlagDotfilesApplyForce uint64 = 357 + FlagDotfilesApplyDryRun uint64 = 358 + FlagDotfilesApplyYes uint64 = 359 + ArgDotfilesApplyTarget uint64 = 360 + CmdDotfilesEdit uint64 = 361 + FlagDotfilesEditApply uint64 = 362 + FlagDotfilesEditMode uint64 = 363 + FlagDotfilesEditSource uint64 = 364 + FlagDotfilesEditYes uint64 = 365 + ArgDotfilesEditTarget uint64 = 366 + CmdDotfilesStatus uint64 = 367 + FlagDotfilesStatusJson uint64 = 368 + FlagDotfilesStatusMissing uint64 = 369 + ArgDotfilesStatusTarget uint64 = 370 + CmdDotfilesUnapply uint64 = 371 + FlagDotfilesUnapplyForce uint64 = 372 + FlagDotfilesUnapplyDryRun uint64 = 373 + FlagDotfilesUnapplyYes uint64 = 374 + ArgDotfilesUnapplyTarget uint64 = 375 + CmdDoctor uint64 = 376 + FlagDoctorJson uint64 = 377 + CmdDoctorPath uint64 = 378 + FlagDoctorPathFull uint64 = 379 + CmdEn uint64 = 380 + FlagEnShell uint64 = 381 + ArgEnDir uint64 = 382 + CmdEnv uint64 = 383 + FlagEnvDotenv uint64 = 384 + FlagEnvJson uint64 = 385 + FlagEnvShell uint64 = 386 + FlagEnvJsonExtended uint64 = 387 + FlagEnvRedacted uint64 = 388 + FlagEnvValues uint64 = 389 + ArgEnvToolVersion uint64 = 390 + CmdExec uint64 = 391 + FlagExecCommand uint64 = 392 + FlagExecJobs uint64 = 393 + FlagExecAllowEnv uint64 = 394 + FlagExecAllowNet uint64 = 395 + FlagExecAllowRead uint64 = 396 + FlagExecAllowWrite uint64 = 397 + FlagExecDenyAll uint64 = 398 + FlagExecDenyEnv uint64 = 399 + FlagExecDenyNet uint64 = 400 + FlagExecDenyRead uint64 = 401 + FlagExecDenyWrite uint64 = 402 + FlagExecFreshEnv uint64 = 403 + FlagExecNoDeps uint64 = 404 + FlagExecRaw uint64 = 405 + ArgExecToolVersion uint64 = 406 + ArgExecCommand uint64 = 407 + CmdFmt uint64 = 408 + FlagFmtAll uint64 = 409 + FlagFmtCheck uint64 = 410 + FlagFmtStdin uint64 = 411 + CmdGenerate uint64 = 412 + CmdGenerateBootstrap uint64 = 413 + FlagGenerateBootstrapLocalize uint64 = 414 + FlagGenerateBootstrapVersion uint64 = 415 + FlagGenerateBootstrapWrite uint64 = 416 + FlagGenerateBootstrapLocalizedDir uint64 = 417 + CmdGenerateConfig uint64 = 418 + FlagGenerateConfigGlobal uint64 = 419 + FlagGenerateConfigDryRun uint64 = 420 + FlagGenerateConfigToolVersions uint64 = 421 + ArgGenerateConfigPath uint64 = 422 + CmdGenerateDevcontainer uint64 = 423 + FlagGenerateDevcontainerImage uint64 = 424 + FlagGenerateDevcontainerMountMiseData uint64 = 425 + FlagGenerateDevcontainerName uint64 = 426 + FlagGenerateDevcontainerWrite uint64 = 427 + CmdGenerateGitPreCommit uint64 = 428 + FlagGenerateGitPreCommitTask uint64 = 429 + FlagGenerateGitPreCommitWrite uint64 = 430 + FlagGenerateGitPreCommitHook uint64 = 431 + CmdGenerateGithubAction uint64 = 432 + FlagGenerateGithubActionTask uint64 = 433 + FlagGenerateGithubActionWrite uint64 = 434 + FlagGenerateGithubActionName uint64 = 435 + CmdGenerateTaskDocs uint64 = 436 + FlagGenerateTaskDocsInject uint64 = 437 + FlagGenerateTaskDocsIndex uint64 = 438 + FlagGenerateTaskDocsMulti uint64 = 439 + FlagGenerateTaskDocsOutput uint64 = 440 + FlagGenerateTaskDocsRoot uint64 = 441 + FlagGenerateTaskDocsStyle uint64 = 442 + CmdGenerateTaskStubs uint64 = 443 + FlagGenerateTaskStubsDir uint64 = 444 + FlagGenerateTaskStubsMiseBin uint64 = 445 + CmdGenerateToolStub uint64 = 446 + FlagGenerateToolStubBin uint64 = 447 + FlagGenerateToolStubBootstrap uint64 = 448 + FlagGenerateToolStubBootstrapVersion uint64 = 449 + FlagGenerateToolStubFetch uint64 = 450 + FlagGenerateToolStubHttp uint64 = 451 + FlagGenerateToolStubLock uint64 = 452 + FlagGenerateToolStubPlatformBin uint64 = 453 + FlagGenerateToolStubPlatformUrl uint64 = 454 + FlagGenerateToolStubSkipDownload uint64 = 455 + FlagGenerateToolStubUrl uint64 = 456 + FlagGenerateToolStubVersion uint64 = 457 + ArgGenerateToolStubOutput uint64 = 458 + CmdGithub uint64 = 459 + CmdGithubToken uint64 = 460 + FlagGithubTokenOauth uint64 = 461 + FlagGithubTokenRaw uint64 = 462 + FlagGithubTokenRefresh uint64 = 463 + FlagGithubTokenUnmask uint64 = 464 + ArgGithubTokenHost uint64 = 465 + CmdGlobal uint64 = 466 + FlagGlobalFuzzy uint64 = 467 + FlagGlobalPath uint64 = 468 + FlagGlobalPin uint64 = 469 + FlagGlobalRemove uint64 = 470 + ArgGlobalToolVersion uint64 = 471 + CmdHookEnv uint64 = 472 + FlagHookEnvForce uint64 = 473 + FlagHookEnvQuiet uint64 = 474 + FlagHookEnvShell uint64 = 475 + FlagHookEnvReason uint64 = 476 + FlagHookEnvStatus uint64 = 477 + CmdHookNotFound uint64 = 478 + FlagHookNotFoundShell uint64 = 479 + ArgHookNotFoundBin uint64 = 480 + CmdImplode uint64 = 481 + FlagImplodeDryRun uint64 = 482 + FlagImplodeConfig uint64 = 483 + CmdEdit uint64 = 484 + FlagEditGlobal uint64 = 485 + FlagEditDryRun uint64 = 486 + FlagEditToolVersions uint64 = 487 + ArgEditPath uint64 = 488 + CmdInstall uint64 = 489 + FlagInstallForce uint64 = 490 + FlagInstallJobs uint64 = 491 + FlagInstallDryRun uint64 = 492 + FlagInstallVerbose uint64 = 493 + FlagInstallDryRunCode uint64 = 494 + FlagInstallMinimumReleaseAge uint64 = 495 + FlagInstallMonorepo uint64 = 496 + FlagInstallRaw uint64 = 497 + FlagInstallShared uint64 = 498 + FlagInstallSystem uint64 = 499 + ArgInstallToolVersion uint64 = 500 + CmdInstallInto uint64 = 501 + ArgInstallIntoToolVersion uint64 = 502 + ArgInstallIntoPath uint64 = 503 + CmdLatest uint64 = 504 + FlagLatestInstalled uint64 = 505 + FlagLatestMinimumReleaseAge uint64 = 506 + ArgLatestToolVersion uint64 = 507 + ArgLatestAsdfVersion uint64 = 508 + CmdLink uint64 = 509 + FlagLinkForce uint64 = 510 + ArgLinkToolVersion uint64 = 511 + ArgLinkPath uint64 = 512 + CmdLocal uint64 = 513 + FlagLocalParent uint64 = 514 + FlagLocalFuzzy uint64 = 515 + FlagLocalPath uint64 = 516 + FlagLocalPin uint64 = 517 + FlagLocalRemove uint64 = 518 + ArgLocalToolVersion uint64 = 519 + CmdLock uint64 = 520 + FlagLockGlobal uint64 = 521 + FlagLockJobs uint64 = 522 + FlagLockDryRun uint64 = 523 + FlagLockPlatform uint64 = 524 + FlagLockBump uint64 = 525 + FlagLockJson uint64 = 526 + FlagLockLocal uint64 = 527 + FlagLockMinimumReleaseAge uint64 = 528 + ArgLockTool uint64 = 529 + CmdLs uint64 = 530 + FlagLsCurrent uint64 = 531 + FlagLsGlobal uint64 = 532 + FlagLsInstalled uint64 = 533 + FlagLsJson uint64 = 534 + FlagLsLocal uint64 = 535 + FlagLsMissing uint64 = 536 + FlagLsOffline uint64 = 537 + FlagLsPlugin uint64 = 538 + FlagLsAllSources uint64 = 539 + FlagLsMonorepo uint64 = 540 + FlagLsNoHeader uint64 = 541 + FlagLsOutdated uint64 = 542 + FlagLsPrefix uint64 = 543 + FlagLsPrunable uint64 = 544 + ArgLsInstalledTool uint64 = 545 + CmdLsRemote uint64 = 546 + FlagLsRemoteAll uint64 = 547 + FlagLsRemoteMinimumReleaseAge uint64 = 548 + FlagLsRemoteJson uint64 = 549 + FlagLsRemoteNoVersionsHost uint64 = 550 + FlagLsRemotePrerelease uint64 = 551 + FlagLsRemoteStrictMetadata uint64 = 552 + ArgLsRemoteToolVersion uint64 = 553 + ArgLsRemotePrefix uint64 = 554 + CmdMcp uint64 = 555 + CmdOci uint64 = 556 + CmdOciBuild uint64 = 557 + FlagOciBuildCopy uint64 = 558 + FlagOciBuildOutput uint64 = 559 + FlagOciBuildFrom uint64 = 560 + FlagOciBuildIncludeGlobal uint64 = 561 + FlagOciBuildTag uint64 = 562 + FlagOciBuildMountPoint uint64 = 563 + FlagOciBuildNoMise uint64 = 564 + FlagOciBuildOwner uint64 = 565 + CmdOciPush uint64 = 566 + FlagOciPushCacheFrom uint64 = 567 + FlagOciPushFrom uint64 = 568 + FlagOciPushImageDir uint64 = 569 + FlagOciPushIncludeGlobal uint64 = 570 + FlagOciPushMountPoint uint64 = 571 + FlagOciPushNoCache uint64 = 572 + FlagOciPushNoMise uint64 = 573 + FlagOciPushOwner uint64 = 574 + FlagOciPushUpdateIndex uint64 = 575 + ArgOciPushRef uint64 = 576 + CmdOciRun uint64 = 577 + FlagOciRunEngine uint64 = 578 + FlagOciRunFrom uint64 = 579 + FlagOciRunImageDir uint64 = 580 + FlagOciRunIncludeGlobal uint64 = 581 + FlagOciRunKeep uint64 = 582 + FlagOciRunMountPoint uint64 = 583 + FlagOciRunNoMise uint64 = 584 + FlagOciRunOwner uint64 = 585 + FlagOciRunVolume uint64 = 586 + FlagOciRunEnv uint64 = 587 + FlagOciRunInteractive uint64 = 588 + FlagOciRunTty uint64 = 589 + FlagOciRunWorkdir uint64 = 590 + ArgOciRunCmd uint64 = 591 + CmdOutdated uint64 = 592 + FlagOutdatedJson uint64 = 593 + FlagOutdatedBump uint64 = 594 + FlagOutdatedInactive uint64 = 595 + FlagOutdatedLocal uint64 = 596 + FlagOutdatedMonorepo uint64 = 597 + FlagOutdatedNoHeader uint64 = 598 + ArgOutdatedToolVersion uint64 = 599 + CmdPatrons uint64 = 600 + FlagPatronsJson uint64 = 601 + FlagPatronsRefresh uint64 = 602 + CmdPlugins uint64 = 603 + FlagPluginsAll uint64 = 604 + FlagPluginsCore uint64 = 605 + FlagPluginsUrls uint64 = 606 + FlagPluginsRefs uint64 = 607 + FlagPluginsUser uint64 = 608 + CmdPluginsInstall uint64 = 609 + FlagPluginsInstallAll uint64 = 610 + FlagPluginsInstallForce uint64 = 611 + FlagPluginsInstallJobs uint64 = 612 + FlagPluginsInstallVerbose uint64 = 613 + ArgPluginsInstallNewPlugin uint64 = 614 + ArgPluginsInstallGitUrl uint64 = 615 + ArgPluginsInstallRest uint64 = 616 + CmdPluginsLink uint64 = 617 + FlagPluginsLinkForce uint64 = 618 + ArgPluginsLinkName uint64 = 619 + ArgPluginsLinkDir uint64 = 620 + CmdPluginsLs uint64 = 621 + FlagPluginsLsAll uint64 = 622 + FlagPluginsLsCore uint64 = 623 + FlagPluginsLsOutdated uint64 = 624 + FlagPluginsLsUrls uint64 = 625 + FlagPluginsLsRefs uint64 = 626 + FlagPluginsLsUser uint64 = 627 + CmdPluginsLsRemote uint64 = 628 + FlagPluginsLsRemoteUrls uint64 = 629 + FlagPluginsLsRemoteOnlyNames uint64 = 630 + CmdPluginsUninstall uint64 = 631 + FlagPluginsUninstallAll uint64 = 632 + FlagPluginsUninstallPurge uint64 = 633 + ArgPluginsUninstallPlugin uint64 = 634 + CmdPluginsUpdate uint64 = 635 + FlagPluginsUpdateJobs uint64 = 636 + ArgPluginsUpdatePlugin uint64 = 637 + CmdDeps uint64 = 638 + FlagDepsExplain uint64 = 639 + FlagDepsForce uint64 = 640 + FlagDepsDryRun uint64 = 641 + FlagDepsList uint64 = 642 + FlagDepsMonorepo uint64 = 643 + FlagDepsOnly uint64 = 644 + FlagDepsSkip uint64 = 645 + ArgDepsProvider uint64 = 646 + CmdDepsAdd uint64 = 647 + FlagDepsAddDev uint64 = 648 + ArgDepsAddPackages uint64 = 649 + CmdDepsInstall uint64 = 650 + FlagDepsInstallExplain uint64 = 651 + FlagDepsInstallForce uint64 = 652 + FlagDepsInstallDryRun uint64 = 653 + FlagDepsInstallList uint64 = 654 + FlagDepsInstallMonorepo uint64 = 655 + FlagDepsInstallOnly uint64 = 656 + FlagDepsInstallSkip uint64 = 657 + ArgDepsInstallProvider uint64 = 658 + CmdDepsRemove uint64 = 659 + ArgDepsRemovePackages uint64 = 660 + CmdPrune uint64 = 661 + FlagPruneDryRun uint64 = 662 + FlagPruneConfigs uint64 = 663 + FlagPruneDryRunCode uint64 = 664 + FlagPruneMonorepo uint64 = 665 + FlagPruneTools uint64 = 666 + ArgPruneInstalledTool uint64 = 667 + CmdRegistry uint64 = 668 + FlagRegistryBackend uint64 = 669 + FlagRegistryComplete uint64 = 670 + FlagRegistryHideAliased uint64 = 671 + FlagRegistryJson uint64 = 672 + FlagRegistrySecurity uint64 = 673 + ArgRegistryName uint64 = 674 + CmdRenderHelp uint64 = 675 + CmdReshim uint64 = 676 + FlagReshimForce uint64 = 677 + ArgReshimTool uint64 = 678 + ArgReshimVersion uint64 = 679 + CmdRun uint64 = 680 + FlagRunAffected uint64 = 681 + FlagRunAffectedBase uint64 = 682 + FlagRunAffectedExplain uint64 = 683 + FlagRunAffectedHead uint64 = 684 + FlagRunAffectedJson uint64 = 685 + FlagRunContinueOnError uint64 = 686 + FlagRunCd uint64 = 687 + FlagRunForce uint64 = 688 + FlagRunJobs uint64 = 689 + FlagRunDryRun uint64 = 690 + FlagRunOutput uint64 = 691 + FlagRunQuiet uint64 = 692 + FlagRunRaw uint64 = 693 + FlagRunShell uint64 = 694 + FlagRunSilent uint64 = 695 + FlagRunTool uint64 = 696 + FlagRunAllowEnv uint64 = 697 + FlagRunAllowNet uint64 = 698 + FlagRunAllowRead uint64 = 699 + FlagRunAllowWrite uint64 = 700 + FlagRunDenyAll uint64 = 701 + FlagRunDenyEnv uint64 = 702 + FlagRunDenyNet uint64 = 703 + FlagRunDenyRead uint64 = 704 + FlagRunDenyWrite uint64 = 705 + FlagRunFreshEnv uint64 = 706 + FlagRunNoCache uint64 = 707 + FlagRunNoDeps uint64 = 708 + FlagRunNoTimings uint64 = 709 + FlagRunSkipDeps uint64 = 710 + FlagRunSkipTools uint64 = 711 + FlagRunTaskCache uint64 = 712 + FlagRunTaskCacheExplain uint64 = 713 + FlagRunTaskCacheExplainJson uint64 = 714 + FlagRunTaskCacheStats uint64 = 715 + FlagRunTimeout uint64 = 716 + FlagRunTimings uint64 = 717 + CmdSearch uint64 = 718 + FlagSearchInteractive uint64 = 719 + FlagSearchMatchType uint64 = 720 + FlagSearchNoHeader uint64 = 721 + ArgSearchName uint64 = 722 + CmdSelfUpdate uint64 = 723 + FlagSelfUpdateForce uint64 = 724 + FlagSelfUpdateYes uint64 = 725 + FlagSelfUpdateNoPlugins uint64 = 726 + ArgSelfUpdateVersion uint64 = 727 + CmdSet uint64 = 728 + FlagSetEnv uint64 = 729 + FlagSetGlobal uint64 = 730 + FlagSetAgeEncrypt uint64 = 731 + FlagSetAgeKeyFile uint64 = 732 + FlagSetAgeRecipient uint64 = 733 + FlagSetAgeSshRecipient uint64 = 734 + FlagSetComplete uint64 = 735 + FlagSetFile uint64 = 736 + FlagSetNoRedact uint64 = 737 + FlagSetPrompt uint64 = 738 + FlagSetRemove uint64 = 739 + FlagSetStdin uint64 = 740 + ArgSetEnvVar uint64 = 741 + CmdSettings uint64 = 742 + FlagSettingsAll uint64 = 743 + FlagSettingsJson uint64 = 744 + FlagSettingsLocal uint64 = 745 + FlagSettingsToml uint64 = 746 + FlagSettingsComplete uint64 = 747 + FlagSettingsJsonExtended uint64 = 748 + ArgSettingsSetting uint64 = 749 + ArgSettingsValue uint64 = 750 + CmdSettingsAdd uint64 = 751 + FlagSettingsAddLocal uint64 = 752 + ArgSettingsAddSetting uint64 = 753 + ArgSettingsAddValue uint64 = 754 + CmdSettingsGet uint64 = 755 + FlagSettingsGetLocal uint64 = 756 + ArgSettingsGetSetting uint64 = 757 + CmdSettingsLs uint64 = 758 + FlagSettingsLsAll uint64 = 759 + FlagSettingsLsJson uint64 = 760 + FlagSettingsLsLocal uint64 = 761 + FlagSettingsLsToml uint64 = 762 + FlagSettingsLsComplete uint64 = 763 + FlagSettingsLsJsonExtended uint64 = 764 + ArgSettingsLsSetting uint64 = 765 + CmdSettingsSet uint64 = 766 + FlagSettingsSetLocal uint64 = 767 + ArgSettingsSetSetting uint64 = 768 + ArgSettingsSetValue uint64 = 769 + CmdSettingsUnset uint64 = 770 + FlagSettingsUnsetLocal uint64 = 771 + ArgSettingsUnsetKey uint64 = 772 + CmdShell uint64 = 773 + FlagShellJobs uint64 = 774 + FlagShellUnset uint64 = 775 + FlagShellRaw uint64 = 776 + ArgShellToolVersion uint64 = 777 + CmdShellAlias uint64 = 778 + FlagShellAliasNoHeader uint64 = 779 + CmdShellAliasGet uint64 = 780 + ArgShellAliasGetShellAlias uint64 = 781 + CmdShellAliasLs uint64 = 782 + FlagShellAliasLsNoHeader uint64 = 783 + CmdShellAliasSet uint64 = 784 + ArgShellAliasSetShellAlias uint64 = 785 + ArgShellAliasSetCommand uint64 = 786 + CmdShellAliasUnset uint64 = 787 + ArgShellAliasUnsetShellAlias uint64 = 788 + CmdSponsors uint64 = 789 + CmdSync uint64 = 790 + CmdSyncNode uint64 = 791 + FlagSyncNodeBrew uint64 = 792 + FlagSyncNodeNodenv uint64 = 793 + FlagSyncNodeNvm uint64 = 794 + CmdSyncPython uint64 = 795 + FlagSyncPythonPyenv uint64 = 796 + FlagSyncPythonUv uint64 = 797 + CmdSyncRuby uint64 = 798 + FlagSyncRubyBrew uint64 = 799 + CmdTasks uint64 = 800 + FlagTasksGlobal uint64 = 801 + FlagTasksJson uint64 = 802 + FlagTasksLocal uint64 = 803 + FlagTasksExtended uint64 = 804 + FlagTasksAll uint64 = 805 + FlagTasksComplete uint64 = 806 + FlagTasksHidden uint64 = 807 + FlagTasksNameOnly uint64 = 808 + FlagTasksNoHeader uint64 = 809 + FlagTasksSort uint64 = 810 + FlagTasksSortOrder uint64 = 811 + FlagTasksUsage uint64 = 812 + ArgTasksTask uint64 = 813 + CmdTasksAdd uint64 = 814 + FlagTasksAddAlias uint64 = 815 + FlagTasksAddDepends uint64 = 816 + FlagTasksAddDir uint64 = 817 + FlagTasksAddFile uint64 = 818 + FlagTasksAddHide uint64 = 819 + FlagTasksAddQuiet uint64 = 820 + FlagTasksAddRaw uint64 = 821 + FlagTasksAddSources uint64 = 822 + FlagTasksAddWaitFor uint64 = 823 + FlagTasksAddDependsPost uint64 = 824 + FlagTasksAddDescription uint64 = 825 + FlagTasksAddOutputs uint64 = 826 + FlagTasksAddRunWindows uint64 = 827 + FlagTasksAddShell uint64 = 828 + FlagTasksAddSilent uint64 = 829 + ArgTasksAddTask uint64 = 830 + ArgTasksAddRun uint64 = 831 + CmdTasksDeps uint64 = 832 + FlagTasksDepsCompact uint64 = 833 + FlagTasksDepsDot uint64 = 834 + FlagTasksDepsHidden uint64 = 835 + ArgTasksDepsTasks uint64 = 836 + CmdTasksEdit uint64 = 837 + FlagTasksEditPath uint64 = 838 + ArgTasksEditTask uint64 = 839 + CmdTasksGraph uint64 = 840 + FlagTasksGraphJson uint64 = 841 + FlagTasksGraphExplain uint64 = 842 + FlagTasksGraphNoHeader uint64 = 843 + CmdTasksInfo uint64 = 844 + FlagTasksInfoJson uint64 = 845 + ArgTasksInfoTask uint64 = 846 + CmdTasksLs uint64 = 847 + FlagTasksLsGlobal uint64 = 848 + FlagTasksLsJson uint64 = 849 + FlagTasksLsLocal uint64 = 850 + FlagTasksLsExtended uint64 = 851 + FlagTasksLsAll uint64 = 852 + FlagTasksLsComplete uint64 = 853 + FlagTasksLsHidden uint64 = 854 + FlagTasksLsNameOnly uint64 = 855 + FlagTasksLsNoHeader uint64 = 856 + FlagTasksLsSort uint64 = 857 + FlagTasksLsSortOrder uint64 = 858 + FlagTasksLsUsage uint64 = 859 + CmdTasksRun uint64 = 860 + FlagTasksRunAffected uint64 = 861 + FlagTasksRunAffectedBase uint64 = 862 + FlagTasksRunAffectedExplain uint64 = 863 + FlagTasksRunAffectedHead uint64 = 864 + FlagTasksRunAffectedJson uint64 = 865 + FlagTasksRunContinueOnError uint64 = 866 + FlagTasksRunCd uint64 = 867 + FlagTasksRunForce uint64 = 868 + FlagTasksRunJobs uint64 = 869 + FlagTasksRunDryRun uint64 = 870 + FlagTasksRunOutput uint64 = 871 + FlagTasksRunQuiet uint64 = 872 + FlagTasksRunRaw uint64 = 873 + FlagTasksRunShell uint64 = 874 + FlagTasksRunSilent uint64 = 875 + FlagTasksRunTool uint64 = 876 + FlagTasksRunAllowEnv uint64 = 877 + FlagTasksRunAllowNet uint64 = 878 + FlagTasksRunAllowRead uint64 = 879 + FlagTasksRunAllowWrite uint64 = 880 + FlagTasksRunDenyAll uint64 = 881 + FlagTasksRunDenyEnv uint64 = 882 + FlagTasksRunDenyNet uint64 = 883 + FlagTasksRunDenyRead uint64 = 884 + FlagTasksRunDenyWrite uint64 = 885 + FlagTasksRunFreshEnv uint64 = 886 + FlagTasksRunNoCache uint64 = 887 + FlagTasksRunNoDeps uint64 = 888 + FlagTasksRunNoTimings uint64 = 889 + FlagTasksRunSkipDeps uint64 = 890 + FlagTasksRunSkipTools uint64 = 891 + FlagTasksRunTaskCache uint64 = 892 + FlagTasksRunTaskCacheExplain uint64 = 893 + FlagTasksRunTaskCacheExplainJson uint64 = 894 + FlagTasksRunTaskCacheStats uint64 = 895 + FlagTasksRunTimeout uint64 = 896 + FlagTasksRunTimings uint64 = 897 + ArgTasksRunTask uint64 = 898 + ArgTasksRunArgs uint64 = 899 + ArgTasksRunArgsLast uint64 = 900 + CmdTasksValidate uint64 = 901 + FlagTasksValidateErrorsOnly uint64 = 902 + FlagTasksValidateJson uint64 = 903 + ArgTasksValidateTasks uint64 = 904 + CmdTestTool uint64 = 905 + FlagTestToolAll uint64 = 906 + FlagTestToolJobs uint64 = 907 + FlagTestToolAllConfig uint64 = 908 + FlagTestToolIncludeNonDefined uint64 = 909 + FlagTestToolRaw uint64 = 910 + ArgTestToolTools uint64 = 911 + CmdToken uint64 = 912 + CmdTokenForgejo uint64 = 913 + FlagTokenForgejoUnmask uint64 = 914 + ArgTokenForgejoHost uint64 = 915 + CmdTokenGithub uint64 = 916 + FlagTokenGithubOauth uint64 = 917 + FlagTokenGithubRaw uint64 = 918 + FlagTokenGithubRefresh uint64 = 919 + FlagTokenGithubUnmask uint64 = 920 + ArgTokenGithubHost uint64 = 921 + CmdTokenGitlab uint64 = 922 + FlagTokenGitlabUnmask uint64 = 923 + ArgTokenGitlabHost uint64 = 924 + CmdTool uint64 = 925 + FlagToolJson uint64 = 926 + FlagToolActive uint64 = 927 + FlagToolBackend uint64 = 928 + FlagToolConfigSource uint64 = 929 + FlagToolDescription uint64 = 930 + FlagToolInstalled uint64 = 931 + FlagToolRequested uint64 = 932 + FlagToolToolOptions uint64 = 933 + ArgToolTool uint64 = 934 + CmdToolStub uint64 = 935 + ArgToolStubFile uint64 = 936 + ArgToolStubArgs uint64 = 937 + CmdTrust uint64 = 938 + FlagTrustAll uint64 = 939 + FlagTrustIgnore uint64 = 940 + FlagTrustShow uint64 = 941 + FlagTrustUntrust uint64 = 942 + ArgTrustConfigFile uint64 = 943 + CmdUninstall uint64 = 944 + FlagUninstallAll uint64 = 945 + FlagUninstallDryRun uint64 = 946 + FlagUninstallDryRunCode uint64 = 947 + ArgUninstallInstalledToolVersion uint64 = 948 + CmdUnset uint64 = 949 + FlagUnsetFile uint64 = 950 + FlagUnsetGlobal uint64 = 951 + ArgUnsetEnvKey uint64 = 952 + CmdUntrust uint64 = 953 + ArgUntrustConfigFile uint64 = 954 + CmdUnuse uint64 = 955 + FlagUnuseEnv uint64 = 956 + FlagUnuseGlobal uint64 = 957 + FlagUnusePath uint64 = 958 + FlagUnuseNoPrune uint64 = 959 + ArgUnuseInstalledToolVersion uint64 = 960 + CmdUpgrade uint64 = 961 + FlagUpgradeInteractive uint64 = 962 + FlagUpgradeJobs uint64 = 963 + FlagUpgradeBump uint64 = 964 + FlagUpgradeDryRun uint64 = 965 + FlagUpgradeExclude uint64 = 966 + FlagUpgradeDryRunCode uint64 = 967 + FlagUpgradeInactive uint64 = 968 + FlagUpgradeLocal uint64 = 969 + FlagUpgradeMinimumReleaseAge uint64 = 970 + FlagUpgradeMonorepo uint64 = 971 + FlagUpgradeNoPrune uint64 = 972 + FlagUpgradeRaw uint64 = 973 + ArgUpgradeInstalledToolVersion uint64 = 974 + CmdUsage uint64 = 975 + CmdUse uint64 = 976 + FlagUseEnv uint64 = 977 + FlagUseForce uint64 = 978 + FlagUseGlobal uint64 = 979 + FlagUseJobs uint64 = 980 + FlagUseDryRun uint64 = 981 + FlagUsePath uint64 = 982 + FlagUseDryRunCode uint64 = 983 + FlagUseFuzzy uint64 = 984 + FlagUseMinimumReleaseAge uint64 = 985 + FlagUsePin uint64 = 986 + FlagUseRaw uint64 = 987 + FlagUseRemove uint64 = 988 + ArgUseToolVersion uint64 = 989 + CmdVersion uint64 = 990 + FlagVersionJson uint64 = 991 + CmdWatch uint64 = 992 + FlagWatchTaskFlag uint64 = 993 + FlagWatchGlob uint64 = 994 + FlagWatchSkipDeps uint64 = 995 + FlagWatchWatch uint64 = 996 + FlagWatchWatchNonRecursive uint64 = 997 + FlagWatchWatchFile uint64 = 998 + FlagWatchClear uint64 = 999 + FlagWatchOnBusyUpdate uint64 = 1000 + FlagWatchRestart uint64 = 1001 + FlagWatchSignal uint64 = 1002 + FlagWatchStopSignal uint64 = 1003 + FlagWatchStopTimeout uint64 = 1004 + FlagWatchMapSignal uint64 = 1005 + FlagWatchDebounce uint64 = 1006 + FlagWatchStdinQuit uint64 = 1007 + FlagWatchNoVcsIgnore uint64 = 1008 + FlagWatchNoProjectIgnore uint64 = 1009 + FlagWatchNoGlobalIgnore uint64 = 1010 + FlagWatchNoDefaultIgnore uint64 = 1011 + FlagWatchNoDiscoverIgnore uint64 = 1012 + FlagWatchIgnoreNothing uint64 = 1013 + FlagWatchPostpone uint64 = 1014 + FlagWatchDelayRun uint64 = 1015 + FlagWatchPoll uint64 = 1016 + FlagWatchShell uint64 = 1017 + FlagWatchN uint64 = 1018 + FlagWatchEmitEventsTo uint64 = 1019 + FlagWatchOnlyEmitEvents uint64 = 1020 + FlagWatchEnv uint64 = 1021 + FlagWatchWrapProcess uint64 = 1022 + FlagWatchNotify uint64 = 1023 + FlagWatchColor uint64 = 1024 + FlagWatchTimings uint64 = 1025 + FlagWatchQuiet uint64 = 1026 + FlagWatchBell uint64 = 1027 + FlagWatchProjectOrigin uint64 = 1028 + FlagWatchWorkdir uint64 = 1029 + FlagWatchExts uint64 = 1030 + FlagWatchFilter uint64 = 1031 + FlagWatchFilterFile uint64 = 1032 + FlagWatchFilterProg uint64 = 1033 + FlagWatchIgnore uint64 = 1034 + FlagWatchIgnoreFile uint64 = 1035 + FlagWatchFsEvents uint64 = 1036 + FlagWatchNoMeta uint64 = 1037 + FlagWatchPrintEvents uint64 = 1038 + FlagWatchManual uint64 = 1039 + ArgWatchTask uint64 = 1040 + ArgWatchArgs uint64 = 1041 + CmdWhere uint64 = 1042 + ArgWhereToolVersion uint64 = 1043 + ArgWhereAsdfVersion uint64 = 1044 + CmdWhich uint64 = 1045 + FlagWhichTool uint64 = 1046 + FlagWhichComplete uint64 = 1047 + FlagWhichPlugin uint64 = 1048 + FlagWhichVersion uint64 = 1049 + ArgWhichBinName uint64 = 1050 +) + +// Root is the command tree for `mise`. Pass it to argv.New. +var Root = &argv.Command{ + Name: "mise", + Key: CmdRoot, + Flags: []*argv.Flag{ + {Key: FlagContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}}, + {Key: FlagCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true, Global: true}, + {Key: FlagEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true, Global: true}, + {Key: FlagForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true, Global: true}, + {Key: FlagDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagProfile, Name: "profile", Longs: []string{"profile"}, Shorts: []byte{'P'}, TakesValue: true, Global: true}, + {Key: FlagQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}, Global: true}, + {Key: FlagShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}, Global: true}, + {Key: FlagVersion, Name: "version", Longs: []string{"version"}, Shorts: []byte{'V'}}, + {Key: FlagYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}, Global: true}, + {Key: FlagDebug, Name: "debug", Longs: []string{"debug"}, Global: true}, + {Key: FlagLogLevel, Name: "log-level", Longs: []string{"log-level"}, TakesValue: true, Global: true}, + {Key: FlagNoConfig, Name: "no-config", Longs: []string{"no-config"}}, + {Key: FlagNoEnv, Name: "no-env", Longs: []string{"no-env"}}, + {Key: FlagNoHooks, Name: "no-hooks", Longs: []string{"no-hooks"}}, + {Key: FlagNoTimings, Name: "no-timings", Longs: []string{"no-timings"}}, + {Key: FlagOutput, Name: "output", Longs: []string{"output"}, TakesValue: true}, + {Key: FlagRaw, Name: "raw", Longs: []string{"raw"}, Global: true}, + {Key: FlagLocked, Name: "locked", Longs: []string{"locked"}, Global: true}, + {Key: FlagSilent, Name: "silent", Longs: []string{"silent"}, Global: true}, + {Key: FlagTimings, Name: "timings", Longs: []string{"timings"}}, + {Key: FlagTrace, Name: "trace", Longs: []string{"trace"}, Global: true}, + }, + Args: []*argv.Arg{ + {Key: ArgTask, Name: "TASK"}, + {Key: ArgTaskArgs, Name: "TASK_ARGS", Var: true}, + {Key: ArgTaskArgsLast, Name: "TASK_ARGS_LAST", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, + Subcommands: []*argv.Command{cmdActivate, cmdToolAlias, cmdAsdf, cmdBackends, cmdBinPaths, cmdBootstrap, cmdCache, cmdCompletion, cmdConfig, cmdCurrent, cmdDeactivate, cmdDirenv, cmdDotfiles, cmdDoctor, cmdEn, cmdEnv, cmdExec, cmdFmt, cmdGenerate, cmdGithub, cmdGlobal, cmdHookEnv, cmdHookNotFound, cmdImplode, cmdEdit, cmdInstall, cmdInstallInto, cmdLatest, cmdLink, cmdLocal, cmdLock, cmdLs, cmdLsRemote, cmdMcp, cmdOci, cmdOutdated, cmdPatrons, cmdPlugins, cmdDeps, cmdPrune, cmdRegistry, cmdRenderHelp, cmdReshim, cmdRun, cmdSearch, cmdSelfUpdate, cmdSet, cmdSettings, cmdShell, cmdShellAlias, cmdSponsors, cmdSync, cmdTasks, cmdTestTool, cmdToken, cmdTool, cmdToolStub, cmdTrust, cmdUninstall, cmdUnset, cmdUntrust, cmdUnuse, cmdUpgrade, cmdUsage, cmdUse, cmdVersion, cmdWatch, cmdWhere, cmdWhich}, + DefaultSubcommand: cmdOciRun, +} + +// activate +var cmdActivate = &argv.Command{ + Name: "activate", + Key: CmdActivate, + Flags: []*argv.Flag{ + {Key: FlagActivateQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagActivateShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagActivateNoHookEnv, Name: "no-hook-env", Longs: []string{"no-hook-env"}}, + {Key: FlagActivateShims, Name: "shims", Longs: []string{"shims"}}, + {Key: FlagActivateStatus, Name: "status", Longs: []string{"status"}}, + }, + Args: []*argv.Arg{ + {Key: ArgActivateShellType, Name: "SHELL_TYPE"}, + }, +} + +// tool-alias +var cmdToolAlias = &argv.Command{ + Name: "tool-alias", + Key: CmdToolAlias, + Aliases: []string{"alias", "aliases"}, + Flags: []*argv.Flag{ + {Key: FlagToolAliasTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagToolAliasNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, + Subcommands: []*argv.Command{cmdToolAliasGet, cmdToolAliasLs, cmdToolAliasSet, cmdToolAliasUnset}, +} + +// tool-alias get +var cmdToolAliasGet = &argv.Command{ + Name: "get", + Key: CmdToolAliasGet, + Args: []*argv.Arg{ + {Key: ArgToolAliasGetTool, Name: "TOOL"}, + {Key: ArgToolAliasGetAlias, Name: "ALIAS"}, + }, +} + +// tool-alias ls +var cmdToolAliasLs = &argv.Command{ + Name: "ls", + Key: CmdToolAliasLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagToolAliasLsNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, + Args: []*argv.Arg{ + {Key: ArgToolAliasLsTool, Name: "TOOL"}, + }, +} + +// tool-alias set +var cmdToolAliasSet = &argv.Command{ + Name: "set", + Key: CmdToolAliasSet, + Aliases: []string{"add", "create"}, + Args: []*argv.Arg{ + {Key: ArgToolAliasSetTool, Name: "TOOL"}, + {Key: ArgToolAliasSetAlias, Name: "ALIAS"}, + {Key: ArgToolAliasSetValue, Name: "VALUE"}, + }, +} + +// tool-alias unset +var cmdToolAliasUnset = &argv.Command{ + Name: "unset", + Key: CmdToolAliasUnset, + Aliases: []string{"rm", "remove", "delete", "del"}, + Args: []*argv.Arg{ + {Key: ArgToolAliasUnsetTool, Name: "TOOL"}, + {Key: ArgToolAliasUnsetAlias, Name: "ALIAS"}, + }, +} + +// asdf +var cmdAsdf = &argv.Command{ + Name: "asdf", + Key: CmdAsdf, + Args: []*argv.Arg{ + {Key: ArgAsdfArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic}, + }, +} + +// backends +var cmdBackends = &argv.Command{ + Name: "backends", + Key: CmdBackends, + Aliases: []string{"b", "backend", "backend-list"}, + Subcommands: []*argv.Command{cmdBackendsLs}, +} + +// backends ls +var cmdBackendsLs = &argv.Command{ + Name: "ls", + Key: CmdBackendsLs, + Aliases: []string{"list"}, +} + +// bin-paths +var cmdBinPaths = &argv.Command{ + Name: "bin-paths", + Key: CmdBinPaths, + Flags: []*argv.Flag{ + {Key: FlagBinPathsBinNames, Name: "bin-names", Longs: []string{"bin-names"}}, + {Key: FlagBinPathsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBinPathsToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// bootstrap +var cmdBootstrap = &argv.Command{ + Name: "bootstrap", + Key: CmdBootstrap, + Aliases: []string{"bs"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + {Key: FlagBootstrapForceDotfiles, Name: "force-dotfiles", Longs: []string{"force-dotfiles"}}, + {Key: FlagBootstrapOnly, Name: "only", Longs: []string{"only"}, TakesValue: true}, + {Key: FlagBootstrapPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + {Key: FlagBootstrapSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true}, + {Key: FlagBootstrapUpdate, Name: "update", Longs: []string{"update"}}, + }, + Subcommands: []*argv.Command{cmdBootstrapApplyAccountPlan, cmdBootstrapApplyServicePlan, cmdBootstrapApplyFirewallPlan, cmdBootstrapApplySystemPlan, cmdBootstrapInspectSystemFiles, cmdBootstrapInspectFirewallPlan, cmdBootstrapAccounts, cmdBootstrapCompose, cmdBootstrapDotfiles, cmdBootstrapFiles, cmdBootstrapFirewall, cmdBootstrapLaunchd, cmdBootstrapLinux, cmdBootstrapMacos, cmdBootstrapMacosDefaults2, cmdBootstrapMiseShellActivate, cmdBootstrapPackages, cmdBootstrapPlan, cmdBootstrapPlugins, cmdBootstrapRemote, cmdBootstrapRepos, cmdBootstrapSecrets, cmdBootstrapServices, cmdBootstrapStatus, cmdBootstrapSystemd, cmdBootstrapUser}, +} + +// bootstrap __apply-account-plan +var cmdBootstrapApplyAccountPlan = &argv.Command{ + Name: "__apply-account-plan", + Key: CmdBootstrapApplyAccountPlan, +} + +// bootstrap __apply-service-plan +var cmdBootstrapApplyServicePlan = &argv.Command{ + Name: "__apply-service-plan", + Key: CmdBootstrapApplyServicePlan, +} + +// bootstrap __apply-firewall-plan +var cmdBootstrapApplyFirewallPlan = &argv.Command{ + Name: "__apply-firewall-plan", + Key: CmdBootstrapApplyFirewallPlan, +} + +// bootstrap __apply-system-plan +var cmdBootstrapApplySystemPlan = &argv.Command{ + Name: "__apply-system-plan", + Key: CmdBootstrapApplySystemPlan, +} + +// bootstrap __inspect-system-files +var cmdBootstrapInspectSystemFiles = &argv.Command{ + Name: "__inspect-system-files", + Key: CmdBootstrapInspectSystemFiles, +} + +// bootstrap __inspect-firewall-plan +var cmdBootstrapInspectFirewallPlan = &argv.Command{ + Name: "__inspect-firewall-plan", + Key: CmdBootstrapInspectFirewallPlan, +} + +// bootstrap accounts +var cmdBootstrapAccounts = &argv.Command{ + Name: "accounts", + Key: CmdBootstrapAccounts, + Subcommands: []*argv.Command{cmdBootstrapAccountsApply, cmdBootstrapAccountsStatus}, +} + +// bootstrap accounts apply +var cmdBootstrapAccountsApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapAccountsApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapAccountsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapAccountsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap accounts status +var cmdBootstrapAccountsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapAccountsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapAccountsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapAccountsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap compose +var cmdBootstrapCompose = &argv.Command{ + Name: "compose", + Key: CmdBootstrapCompose, + Subcommands: []*argv.Command{cmdBootstrapComposeApply, cmdBootstrapComposeStatus}, +} + +// bootstrap compose apply +var cmdBootstrapComposeApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapComposeApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapComposeApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapComposeApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap compose status +var cmdBootstrapComposeStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapComposeStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapComposeStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapComposeStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap dotfiles +var cmdBootstrapDotfiles = &argv.Command{ + Name: "dotfiles", + Key: CmdBootstrapDotfiles, + Subcommands: []*argv.Command{cmdBootstrapDotfilesAdd, cmdBootstrapDotfilesApply, cmdBootstrapDotfilesEdit, cmdBootstrapDotfilesStatus, cmdBootstrapDotfilesUnapply}, +} + +// bootstrap dotfiles add +var cmdBootstrapDotfilesAdd = &argv.Command{ + Name: "add", + Key: CmdBootstrapDotfilesAdd, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDotfilesAddForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagBootstrapDotfilesAddGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagBootstrapDotfilesAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagBootstrapDotfilesAddMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapDotfilesAddDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapDotfilesAddNoApply, Name: "no-apply", Longs: []string{"no-apply"}}, + {Key: FlagBootstrapDotfilesAddPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagBootstrapDotfilesAddSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagBootstrapDotfilesAddYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapDotfilesAddTarget, Name: "TARGET", Var: true}, + }, +} + +// bootstrap dotfiles apply +var cmdBootstrapDotfilesApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapDotfilesApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDotfilesApplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagBootstrapDotfilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapDotfilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapDotfilesApplyTarget, Name: "TARGET", Var: true}, + }, +} + +// bootstrap dotfiles edit +var cmdBootstrapDotfilesEdit = &argv.Command{ + Name: "edit", + Key: CmdBootstrapDotfilesEdit, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDotfilesEditApply, Name: "apply", Longs: []string{"apply"}}, + {Key: FlagBootstrapDotfilesEditMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapDotfilesEditSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagBootstrapDotfilesEditYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapDotfilesEditTarget, Name: "TARGET"}, + }, +} + +// bootstrap dotfiles status +var cmdBootstrapDotfilesStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapDotfilesStatus, + Aliases: []string{"ls"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDotfilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapDotfilesStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapDotfilesStatusTarget, Name: "TARGET", Var: true}, + }, +} + +// bootstrap dotfiles unapply +var cmdBootstrapDotfilesUnapply = &argv.Command{ + Name: "unapply", + Key: CmdBootstrapDotfilesUnapply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapDotfilesUnapplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagBootstrapDotfilesUnapplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapDotfilesUnapplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapDotfilesUnapplyTarget, Name: "TARGET", Var: true}, + }, +} + +// bootstrap files +var cmdBootstrapFiles = &argv.Command{ + Name: "files", + Key: CmdBootstrapFiles, + Subcommands: []*argv.Command{cmdBootstrapFilesApply, cmdBootstrapFilesStatus}, +} + +// bootstrap files apply +var cmdBootstrapFilesApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapFilesApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapFilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapFilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + {Key: FlagBootstrapFilesApplyPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + }, +} + +// bootstrap files status +var cmdBootstrapFilesStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapFilesStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapFilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapFilesStatusMissing, Name: "missing", Longs: []string{"missing"}}, + {Key: FlagBootstrapFilesStatusPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + }, +} + +// bootstrap firewall +var cmdBootstrapFirewall = &argv.Command{ + Name: "firewall", + Key: CmdBootstrapFirewall, + Subcommands: []*argv.Command{cmdBootstrapFirewallApply, cmdBootstrapFirewallStatus}, +} + +// bootstrap firewall apply +var cmdBootstrapFirewallApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapFirewallApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapFirewallApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapFirewallApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap firewall status +var cmdBootstrapFirewallStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapFirewallStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapFirewallStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapFirewallStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap launchd +var cmdBootstrapLaunchd = &argv.Command{ + Name: "launchd", + Key: CmdBootstrapLaunchd, + Subcommands: []*argv.Command{cmdBootstrapLaunchdApply, cmdBootstrapLaunchdStatus}, +} + +// bootstrap launchd apply +var cmdBootstrapLaunchdApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapLaunchdApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapLaunchdApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapLaunchdApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap launchd status +var cmdBootstrapLaunchdStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapLaunchdStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapLaunchdStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapLaunchdStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap linux +var cmdBootstrapLinux = &argv.Command{ + Name: "linux", + Key: CmdBootstrapLinux, + Subcommands: []*argv.Command{cmdBootstrapLinuxSystemdUnits}, +} + +// bootstrap linux systemd-units +var cmdBootstrapLinuxSystemdUnits = &argv.Command{ + Name: "systemd-units", + Key: CmdBootstrapLinuxSystemdUnits, + Aliases: []string{"systemd"}, + Subcommands: []*argv.Command{cmdBootstrapLinuxSystemdUnitsApply, cmdBootstrapLinuxSystemdUnitsStatus}, +} + +// bootstrap linux systemd-units apply +var cmdBootstrapLinuxSystemdUnitsApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapLinuxSystemdUnitsApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapLinuxSystemdUnitsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapLinuxSystemdUnitsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap linux systemd-units status +var cmdBootstrapLinuxSystemdUnitsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapLinuxSystemdUnitsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapLinuxSystemdUnitsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapLinuxSystemdUnitsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap macos +var cmdBootstrapMacos = &argv.Command{ + Name: "macos", + Key: CmdBootstrapMacos, + Subcommands: []*argv.Command{cmdBootstrapMacosDefaults, cmdBootstrapMacosLaunchdAgents}, +} + +// bootstrap macos defaults +var cmdBootstrapMacosDefaults = &argv.Command{ + Name: "defaults", + Key: CmdBootstrapMacosDefaults, + Subcommands: []*argv.Command{cmdBootstrapMacosDefaultsApply, cmdBootstrapMacosDefaultsStatus}, +} + +// bootstrap macos defaults apply +var cmdBootstrapMacosDefaultsApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapMacosDefaultsApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosDefaultsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapMacosDefaultsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap macos defaults status +var cmdBootstrapMacosDefaultsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapMacosDefaultsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosDefaultsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapMacosDefaultsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap macos launchd-agents +var cmdBootstrapMacosLaunchdAgents = &argv.Command{ + Name: "launchd-agents", + Key: CmdBootstrapMacosLaunchdAgents, + Aliases: []string{"launchd"}, + Subcommands: []*argv.Command{cmdBootstrapMacosLaunchdAgentsApply, cmdBootstrapMacosLaunchdAgentsStatus}, +} + +// bootstrap macos launchd-agents apply +var cmdBootstrapMacosLaunchdAgentsApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapMacosLaunchdAgentsApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosLaunchdAgentsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapMacosLaunchdAgentsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap macos launchd-agents status +var cmdBootstrapMacosLaunchdAgentsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapMacosLaunchdAgentsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosLaunchdAgentsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapMacosLaunchdAgentsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap macos-defaults +var cmdBootstrapMacosDefaults2 = &argv.Command{ + Name: "macos-defaults", + Key: CmdBootstrapMacosDefaults2, + Subcommands: []*argv.Command{cmdBootstrapMacosDefaultsApply2, cmdBootstrapMacosDefaultsStatus2}, +} + +// bootstrap macos-defaults apply +var cmdBootstrapMacosDefaultsApply2 = &argv.Command{ + Name: "apply", + Key: CmdBootstrapMacosDefaultsApply2, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosDefaultsApplyDryRun2, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapMacosDefaultsApplyYes2, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap macos-defaults status +var cmdBootstrapMacosDefaultsStatus2 = &argv.Command{ + Name: "status", + Key: CmdBootstrapMacosDefaultsStatus2, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMacosDefaultsStatusJson2, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapMacosDefaultsStatusMissing2, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap mise-shell-activate +var cmdBootstrapMiseShellActivate = &argv.Command{ + Name: "mise-shell-activate", + Key: CmdBootstrapMiseShellActivate, + Aliases: []string{"shell"}, + Subcommands: []*argv.Command{cmdBootstrapMiseShellActivateApply, cmdBootstrapMiseShellActivateStatus}, +} + +// bootstrap mise-shell-activate apply +var cmdBootstrapMiseShellActivateApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapMiseShellActivateApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMiseShellActivateApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapMiseShellActivateApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap mise-shell-activate status +var cmdBootstrapMiseShellActivateStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapMiseShellActivateStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapMiseShellActivateStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapMiseShellActivateStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap packages +var cmdBootstrapPackages = &argv.Command{ + Name: "packages", + Key: CmdBootstrapPackages, + Subcommands: []*argv.Command{cmdBootstrapPackagesApply, cmdBootstrapPackagesBrew, cmdBootstrapPackagesImport, cmdBootstrapPackagesPrune, cmdBootstrapPackagesStatus, cmdBootstrapPackagesUpgrade, cmdBootstrapPackagesUse}, +} + +// bootstrap packages apply +var cmdBootstrapPackagesApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapPackagesApply, + Aliases: []string{"i", "install"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesApplyManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapPackagesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + {Key: FlagBootstrapPackagesApplyUpdate, Name: "update", Longs: []string{"update"}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapPackagesApplyPackage, Name: "PACKAGE", Var: true}, + }, +} + +// bootstrap packages brew +var cmdBootstrapPackagesBrew = &argv.Command{ + Name: "brew", + Key: CmdBootstrapPackagesBrew, + Subcommands: []*argv.Command{cmdBootstrapPackagesBrewTap, cmdBootstrapPackagesBrewUntap}, +} + +// bootstrap packages brew tap +var cmdBootstrapPackagesBrewTap = &argv.Command{ + Name: "tap", + Key: CmdBootstrapPackagesBrewTap, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesBrewTapLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagBootstrapPackagesBrewTapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesBrewTapPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapPackagesBrewTapTap, Name: "TAP"}, + {Key: ArgBootstrapPackagesBrewTapUrl, Name: "URL"}, + }, +} + +// bootstrap packages brew untap +var cmdBootstrapPackagesBrewUntap = &argv.Command{ + Name: "untap", + Key: CmdBootstrapPackagesBrewUntap, + Aliases: []string{"remove", "rm"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesBrewUntapLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagBootstrapPackagesBrewUntapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesBrewUntapPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapPackagesBrewUntapTaps, Name: "TAPS", Var: true}, + }, +} + +// bootstrap packages import +var cmdBootstrapPackagesImport = &argv.Command{ + Name: "import", + Key: CmdBootstrapPackagesImport, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesImportEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagBootstrapPackagesImportGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagBootstrapPackagesImportManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapPackagesImportAll, Name: "all", Longs: []string{"all"}}, + {Key: FlagBootstrapPackagesImportDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesImportPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + }, +} + +// bootstrap packages prune +var cmdBootstrapPackagesPrune = &argv.Command{ + Name: "prune", + Key: CmdBootstrapPackagesPrune, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesPruneManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapPackagesPruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesPruneYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap packages status +var cmdBootstrapPackagesStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapPackagesStatus, + Aliases: []string{"ls"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapPackagesStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap packages upgrade +var cmdBootstrapPackagesUpgrade = &argv.Command{ + Name: "upgrade", + Key: CmdBootstrapPackagesUpgrade, + Aliases: []string{"up"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesUpgradeManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagBootstrapPackagesUpgradeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesUpgradeYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapPackagesUpgradePackage, Name: "PACKAGE", Var: true}, + }, +} + +// bootstrap packages use +var cmdBootstrapPackagesUse = &argv.Command{ + Name: "use", + Key: CmdBootstrapPackagesUse, + Aliases: []string{"u"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPackagesUseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagBootstrapPackagesUseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagBootstrapPackagesUseDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapPackagesUsePath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagBootstrapPackagesUseYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapPackagesUsePackage, Name: "PACKAGE", Var: true}, + }, +} + +// bootstrap plan +var cmdBootstrapPlan = &argv.Command{ + Name: "plan", + Key: CmdBootstrapPlan, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPlanJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapPlanDetailedExitcode, Name: "detailed-exitcode", Longs: []string{"detailed-exitcode"}}, + {Key: FlagBootstrapPlanPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + }, +} + +// bootstrap plugins +var cmdBootstrapPlugins = &argv.Command{ + Name: "plugins", + Key: CmdBootstrapPlugins, + Subcommands: []*argv.Command{cmdBootstrapPluginsApply, cmdBootstrapPluginsStatus}, +} + +// bootstrap plugins apply +var cmdBootstrapPluginsApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapPluginsApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPluginsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + }, +} + +// bootstrap plugins status +var cmdBootstrapPluginsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapPluginsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapPluginsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap remote +var cmdBootstrapRemote = &argv.Command{ + Name: "remote", + Key: CmdBootstrapRemote, + Flags: []*argv.Flag{ + {Key: FlagBootstrapRemoteAll, Name: "all", Longs: []string{"all"}}, + {Key: FlagBootstrapRemoteBootstrapCommand, Name: "bootstrap-command", Longs: []string{"bootstrap-command"}, TakesValue: true}, + {Key: FlagBootstrapRemoteConnectTimeout, Name: "connect-timeout", Longs: []string{"connect-timeout"}, TakesValue: true}, + {Key: FlagBootstrapRemoteExclude, Name: "exclude", Longs: []string{"exclude"}, TakesValue: true}, + {Key: FlagBootstrapRemoteFailFast, Name: "fail-fast", Longs: []string{"fail-fast"}}, + {Key: FlagBootstrapRemoteForceDotfiles, Name: "force-dotfiles", Longs: []string{"force-dotfiles"}}, + {Key: FlagBootstrapRemoteHost, Name: "host", Longs: []string{"host"}, TakesValue: true}, + {Key: FlagBootstrapRemoteIdentityFile, Name: "identity-file", Longs: []string{"identity-file"}, Shorts: []byte{'i'}, TakesValue: true}, + {Key: FlagBootstrapRemoteDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapRemoteKeepStaging, Name: "keep-staging", Longs: []string{"keep-staging"}}, + {Key: FlagBootstrapRemoteMiseBin, Name: "mise-bin", Longs: []string{"mise-bin"}, TakesValue: true}, + {Key: FlagBootstrapRemoteOnly, Name: "only", Longs: []string{"only"}, TakesValue: true}, + {Key: FlagBootstrapRemotePort, Name: "port", Longs: []string{"port"}, TakesValue: true}, + {Key: FlagBootstrapRemotePromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + {Key: FlagBootstrapRemoteRemoteMise, Name: "remote-mise", Longs: []string{"remote-mise"}, TakesValue: true}, + {Key: FlagBootstrapRemoteSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true}, + {Key: FlagBootstrapRemoteSource, Name: "source", Longs: []string{"source"}, TakesValue: true}, + {Key: FlagBootstrapRemoteSshOption, Name: "ssh-option", Longs: []string{"ssh-option"}, TakesValue: true}, + {Key: FlagBootstrapRemoteTag, Name: "tag", Longs: []string{"tag"}, TakesValue: true}, + {Key: FlagBootstrapRemoteUpdate, Name: "update", Longs: []string{"update"}}, + {Key: FlagBootstrapRemoteYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapRemoteTarget, Name: "TARGET", Var: true}, + }, +} + +// bootstrap repos +var cmdBootstrapRepos = &argv.Command{ + Name: "repos", + Key: CmdBootstrapRepos, + Subcommands: []*argv.Command{cmdBootstrapReposApply, cmdBootstrapReposExec, cmdBootstrapReposStatus, cmdBootstrapReposUpdate}, +} + +// bootstrap repos apply +var cmdBootstrapReposApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapReposApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapReposApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapReposApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap repos exec +var cmdBootstrapReposExec = &argv.Command{ + Name: "exec", + Key: CmdBootstrapReposExec, + Flags: []*argv.Flag{ + {Key: FlagBootstrapReposExecContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}}, + {Key: FlagBootstrapReposExecDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapReposExecPath, Name: "PATH", Var: true}, + {Key: ArgBootstrapReposExecCommand, Name: "COMMAND", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, +} + +// bootstrap repos status +var cmdBootstrapReposStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapReposStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapReposStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapReposStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap repos update +var cmdBootstrapReposUpdate = &argv.Command{ + Name: "update", + Key: CmdBootstrapReposUpdate, + Flags: []*argv.Flag{ + {Key: FlagBootstrapReposUpdateDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapReposUpdateYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgBootstrapReposUpdatePath, Name: "PATH", Var: true}, + }, +} + +// bootstrap secrets +var cmdBootstrapSecrets = &argv.Command{ + Name: "secrets", + Key: CmdBootstrapSecrets, + Subcommands: []*argv.Command{cmdBootstrapSecretsStatus}, +} + +// bootstrap secrets status +var cmdBootstrapSecretsStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapSecretsStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapSecretsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapSecretsStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap services +var cmdBootstrapServices = &argv.Command{ + Name: "services", + Key: CmdBootstrapServices, + Subcommands: []*argv.Command{cmdBootstrapServicesApply, cmdBootstrapServicesStatus}, +} + +// bootstrap services apply +var cmdBootstrapServicesApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapServicesApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapServicesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapServicesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap services status +var cmdBootstrapServicesStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapServicesStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapServicesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapServicesStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap status +var cmdBootstrapStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapStatus, + Aliases: []string{"ls"}, + Flags: []*argv.Flag{ + {Key: FlagBootstrapStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapStatusMissing, Name: "missing", Longs: []string{"missing"}}, + {Key: FlagBootstrapStatusPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}}, + }, +} + +// bootstrap systemd +var cmdBootstrapSystemd = &argv.Command{ + Name: "systemd", + Key: CmdBootstrapSystemd, + Subcommands: []*argv.Command{cmdBootstrapSystemdApply, cmdBootstrapSystemdStatus}, +} + +// bootstrap systemd apply +var cmdBootstrapSystemdApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapSystemdApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapSystemdApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapSystemdApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap systemd status +var cmdBootstrapSystemdStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapSystemdStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapSystemdStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapSystemdStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// bootstrap user +var cmdBootstrapUser = &argv.Command{ + Name: "user", + Key: CmdBootstrapUser, + Subcommands: []*argv.Command{cmdBootstrapUserApply, cmdBootstrapUserStatus}, +} + +// bootstrap user apply +var cmdBootstrapUserApply = &argv.Command{ + Name: "apply", + Key: CmdBootstrapUserApply, + Flags: []*argv.Flag{ + {Key: FlagBootstrapUserApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagBootstrapUserApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, +} + +// bootstrap user status +var cmdBootstrapUserStatus = &argv.Command{ + Name: "status", + Key: CmdBootstrapUserStatus, + Flags: []*argv.Flag{ + {Key: FlagBootstrapUserStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagBootstrapUserStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, +} + +// cache +var cmdCache = &argv.Command{ + Name: "cache", + Key: CmdCache, + Subcommands: []*argv.Command{cmdCacheClear, cmdCachePath, cmdCachePrune, cmdCacheTask}, +} + +// cache clear +var cmdCacheClear = &argv.Command{ + Name: "clear", + Key: CmdCacheClear, + Aliases: []string{"c", "clean"}, + Flags: []*argv.Flag{ + {Key: FlagCacheClearOutdate, Name: "outdate", Longs: []string{"outdate"}}, + {Key: FlagCacheClearTask, Name: "task", Longs: []string{"task"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgCacheClearTool, Name: "TOOL", Var: true}, + }, +} + +// cache path +var cmdCachePath = &argv.Command{ + Name: "path", + Key: CmdCachePath, + Aliases: []string{"dir"}, +} + +// cache prune +var cmdCachePrune = &argv.Command{ + Name: "prune", + Key: CmdCachePrune, + Aliases: []string{"p"}, + Flags: []*argv.Flag{ + {Key: FlagCachePruneVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}}, + {Key: FlagCachePruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}}, + }, + Args: []*argv.Arg{ + {Key: ArgCachePruneTool, Name: "TOOL", Var: true}, + }, +} + +// cache task +var cmdCacheTask = &argv.Command{ + Name: "task", + Key: CmdCacheTask, + Flags: []*argv.Flag{ + {Key: FlagCacheTaskJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + }, + Args: []*argv.Arg{ + {Key: ArgCacheTaskTask, Name: "TASK"}, + }, +} + +// completion +var cmdCompletion = &argv.Command{ + Name: "completion", + Key: CmdCompletion, + Aliases: []string{"complete", "completions"}, + Flags: []*argv.Flag{ + {Key: FlagCompletionShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagCompletionIncludeBashCompletionLib, Name: "include-bash-completion-lib", Longs: []string{"include-bash-completion-lib"}}, + {Key: FlagCompletionUsage, Name: "usage", Longs: []string{"usage"}}, + }, + Args: []*argv.Arg{ + {Key: ArgCompletionShell, Name: "SHELL"}, + }, +} + +// config +var cmdConfig = &argv.Command{ + Name: "config", + Key: CmdConfig, + Aliases: []string{"cfg", "toml"}, + Flags: []*argv.Flag{ + {Key: FlagConfigJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagConfigNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + {Key: FlagConfigTrackedConfigs, Name: "tracked-configs", Longs: []string{"tracked-configs"}}, + }, + Subcommands: []*argv.Command{cmdConfigGet, cmdConfigLs, cmdConfigSet}, +} + +// config get +var cmdConfigGet = &argv.Command{ + Name: "get", + Key: CmdConfigGet, + Flags: []*argv.Flag{ + {Key: FlagConfigGetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgConfigGetKey, Name: "KEY"}, + }, +} + +// config ls +var cmdConfigLs = &argv.Command{ + Name: "ls", + Key: CmdConfigLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagConfigLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagConfigLsNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + {Key: FlagConfigLsTrackedConfigs, Name: "tracked-configs", Longs: []string{"tracked-configs"}}, + }, +} + +// config set +var cmdConfigSet = &argv.Command{ + Name: "set", + Key: CmdConfigSet, + Flags: []*argv.Flag{ + {Key: FlagConfigSetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true}, + {Key: FlagConfigSetType, Name: "type", Longs: []string{"type"}, Shorts: []byte{'t'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgConfigSetKey, Name: "KEY"}, + {Key: ArgConfigSetValue, Name: "VALUE"}, + }, +} + +// current +var cmdCurrent = &argv.Command{ + Name: "current", + Key: CmdCurrent, + Args: []*argv.Arg{ + {Key: ArgCurrentPlugin, Name: "PLUGIN"}, + }, +} + +// deactivate +var cmdDeactivate = &argv.Command{ + Name: "deactivate", + Key: CmdDeactivate, +} + +// direnv +var cmdDirenv = &argv.Command{ + Name: "direnv", + Key: CmdDirenv, + Subcommands: []*argv.Command{cmdDirenvActivate, cmdDirenvEnvrc, cmdDirenvExec}, +} + +// direnv activate +var cmdDirenvActivate = &argv.Command{ + Name: "activate", + Key: CmdDirenvActivate, +} + +// direnv envrc +var cmdDirenvEnvrc = &argv.Command{ + Name: "envrc", + Key: CmdDirenvEnvrc, +} + +// direnv exec +var cmdDirenvExec = &argv.Command{ + Name: "exec", + Key: CmdDirenvExec, +} + +// dotfiles +var cmdDotfiles = &argv.Command{ + Name: "dotfiles", + Key: CmdDotfiles, + Subcommands: []*argv.Command{cmdDotfilesAdd, cmdDotfilesApply, cmdDotfilesEdit, cmdDotfilesStatus, cmdDotfilesUnapply}, +} + +// dotfiles add +var cmdDotfilesAdd = &argv.Command{ + Name: "add", + Key: CmdDotfilesAdd, + Flags: []*argv.Flag{ + {Key: FlagDotfilesAddForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagDotfilesAddGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagDotfilesAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagDotfilesAddMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagDotfilesAddDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagDotfilesAddNoApply, Name: "no-apply", Longs: []string{"no-apply"}}, + {Key: FlagDotfilesAddPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagDotfilesAddSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagDotfilesAddYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgDotfilesAddTarget, Name: "TARGET", Var: true}, + }, +} + +// dotfiles apply +var cmdDotfilesApply = &argv.Command{ + Name: "apply", + Key: CmdDotfilesApply, + Flags: []*argv.Flag{ + {Key: FlagDotfilesApplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagDotfilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagDotfilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgDotfilesApplyTarget, Name: "TARGET", Var: true}, + }, +} + +// dotfiles edit +var cmdDotfilesEdit = &argv.Command{ + Name: "edit", + Key: CmdDotfilesEdit, + Flags: []*argv.Flag{ + {Key: FlagDotfilesEditApply, Name: "apply", Longs: []string{"apply"}}, + {Key: FlagDotfilesEditMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagDotfilesEditSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagDotfilesEditYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgDotfilesEditTarget, Name: "TARGET"}, + }, +} + +// dotfiles status +var cmdDotfilesStatus = &argv.Command{ + Name: "status", + Key: CmdDotfilesStatus, + Aliases: []string{"ls"}, + Flags: []*argv.Flag{ + {Key: FlagDotfilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagDotfilesStatusMissing, Name: "missing", Longs: []string{"missing"}}, + }, + Args: []*argv.Arg{ + {Key: ArgDotfilesStatusTarget, Name: "TARGET", Var: true}, + }, +} + +// dotfiles unapply +var cmdDotfilesUnapply = &argv.Command{ + Name: "unapply", + Key: CmdDotfilesUnapply, + Flags: []*argv.Flag{ + {Key: FlagDotfilesUnapplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagDotfilesUnapplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagDotfilesUnapplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + }, + Args: []*argv.Arg{ + {Key: ArgDotfilesUnapplyTarget, Name: "TARGET", Var: true}, + }, +} + +// doctor +var cmdDoctor = &argv.Command{ + Name: "doctor", + Key: CmdDoctor, + Aliases: []string{"dr"}, + Flags: []*argv.Flag{ + {Key: FlagDoctorJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + }, + Subcommands: []*argv.Command{cmdDoctorPath}, +} + +// doctor path +var cmdDoctorPath = &argv.Command{ + Name: "path", + Key: CmdDoctorPath, + Aliases: []string{"paths"}, + Flags: []*argv.Flag{ + {Key: FlagDoctorPathFull, Name: "full", Longs: []string{"full"}, Shorts: []byte{'f'}}, + }, +} + +// en +var cmdEn = &argv.Command{ + Name: "en", + Key: CmdEn, + Flags: []*argv.Flag{ + {Key: FlagEnShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgEnDir, Name: "DIR"}, + }, +} + +// env +var cmdEnv = &argv.Command{ + Name: "env", + Key: CmdEnv, + Aliases: []string{"e"}, + Flags: []*argv.Flag{ + {Key: FlagEnvDotenv, Name: "dotenv", Longs: []string{"dotenv"}, Shorts: []byte{'D'}}, + {Key: FlagEnvJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagEnvShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagEnvJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}}, + {Key: FlagEnvRedacted, Name: "redacted", Longs: []string{"redacted"}}, + {Key: FlagEnvValues, Name: "values", Longs: []string{"values"}}, + }, + Args: []*argv.Arg{ + {Key: ArgEnvToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// exec +var cmdExec = &argv.Command{ + Name: "exec", + Key: CmdExec, + Aliases: []string{"x"}, + Flags: []*argv.Flag{ + {Key: FlagExecCommand, Name: "command", Longs: []string{"command"}, Shorts: []byte{'c'}, TakesValue: true}, + {Key: FlagExecJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagExecAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true}, + {Key: FlagExecAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true}, + {Key: FlagExecAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true}, + {Key: FlagExecAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true}, + {Key: FlagExecDenyAll, Name: "deny-all", Longs: []string{"deny-all"}}, + {Key: FlagExecDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}}, + {Key: FlagExecDenyNet, Name: "deny-net", Longs: []string{"deny-net"}}, + {Key: FlagExecDenyRead, Name: "deny-read", Longs: []string{"deny-read"}}, + {Key: FlagExecDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}}, + {Key: FlagExecFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}}, + {Key: FlagExecNoDeps, Name: "no-deps", Longs: []string{"no-deps"}}, + {Key: FlagExecRaw, Name: "raw", Longs: []string{"raw"}}, + }, + Args: []*argv.Arg{ + {Key: ArgExecToolVersion, Name: "TOOL@VERSION", Var: true}, + {Key: ArgExecCommand, Name: "COMMAND", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, +} + +// fmt +var cmdFmt = &argv.Command{ + Name: "fmt", + Key: CmdFmt, + Flags: []*argv.Flag{ + {Key: FlagFmtAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagFmtCheck, Name: "check", Longs: []string{"check"}, Shorts: []byte{'c'}}, + {Key: FlagFmtStdin, Name: "stdin", Longs: []string{"stdin"}, Shorts: []byte{'s'}}, + }, +} + +// generate +var cmdGenerate = &argv.Command{ + Name: "generate", + Key: CmdGenerate, + Aliases: []string{"gen", "g"}, + Subcommands: []*argv.Command{cmdGenerateBootstrap, cmdGenerateConfig, cmdGenerateDevcontainer, cmdGenerateGitPreCommit, cmdGenerateGithubAction, cmdGenerateTaskDocs, cmdGenerateTaskStubs, cmdGenerateToolStub}, +} + +// generate bootstrap +var cmdGenerateBootstrap = &argv.Command{ + Name: "bootstrap", + Key: CmdGenerateBootstrap, + Flags: []*argv.Flag{ + {Key: FlagGenerateBootstrapLocalize, Name: "localize", Longs: []string{"localize"}, Shorts: []byte{'l'}}, + {Key: FlagGenerateBootstrapVersion, Name: "version", Longs: []string{"version"}, Shorts: []byte{'V'}, TakesValue: true}, + {Key: FlagGenerateBootstrapWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}, TakesValue: true}, + {Key: FlagGenerateBootstrapLocalizedDir, Name: "localized-dir", Longs: []string{"localized-dir"}, TakesValue: true}, + }, +} + +// generate config +var cmdGenerateConfig = &argv.Command{ + Name: "config", + Key: CmdGenerateConfig, + Flags: []*argv.Flag{ + {Key: FlagGenerateConfigGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagGenerateConfigDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagGenerateConfigToolVersions, Name: "tool-versions", Longs: []string{"tool-versions"}, Shorts: []byte{'t'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgGenerateConfigPath, Name: "PATH"}, + }, +} + +// generate devcontainer +var cmdGenerateDevcontainer = &argv.Command{ + Name: "devcontainer", + Key: CmdGenerateDevcontainer, + Flags: []*argv.Flag{ + {Key: FlagGenerateDevcontainerImage, Name: "image", Longs: []string{"image"}, Shorts: []byte{'i'}, TakesValue: true}, + {Key: FlagGenerateDevcontainerMountMiseData, Name: "mount-mise-data", Longs: []string{"mount-mise-data"}, Shorts: []byte{'m'}}, + {Key: FlagGenerateDevcontainerName, Name: "name", Longs: []string{"name"}, Shorts: []byte{'n'}, TakesValue: true}, + {Key: FlagGenerateDevcontainerWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}}, + }, +} + +// generate git-pre-commit +var cmdGenerateGitPreCommit = &argv.Command{ + Name: "git-pre-commit", + Key: CmdGenerateGitPreCommit, + Aliases: []string{"pre-commit"}, + Flags: []*argv.Flag{ + {Key: FlagGenerateGitPreCommitTask, Name: "task", Longs: []string{"task"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagGenerateGitPreCommitWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}}, + {Key: FlagGenerateGitPreCommitHook, Name: "hook", Longs: []string{"hook"}, TakesValue: true}, + }, +} + +// generate github-action +var cmdGenerateGithubAction = &argv.Command{ + Name: "github-action", + Key: CmdGenerateGithubAction, + Flags: []*argv.Flag{ + {Key: FlagGenerateGithubActionTask, Name: "task", Longs: []string{"task"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagGenerateGithubActionWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}}, + {Key: FlagGenerateGithubActionName, Name: "name", Longs: []string{"name"}, TakesValue: true}, + }, +} + +// generate task-docs +var cmdGenerateTaskDocs = &argv.Command{ + Name: "task-docs", + Key: CmdGenerateTaskDocs, + Flags: []*argv.Flag{ + {Key: FlagGenerateTaskDocsInject, Name: "inject", Longs: []string{"inject"}, Shorts: []byte{'i'}}, + {Key: FlagGenerateTaskDocsIndex, Name: "index", Longs: []string{"index"}, Shorts: []byte{'I'}}, + {Key: FlagGenerateTaskDocsMulti, Name: "multi", Longs: []string{"multi"}, Shorts: []byte{'m'}}, + {Key: FlagGenerateTaskDocsOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true}, + {Key: FlagGenerateTaskDocsRoot, Name: "root", Longs: []string{"root"}, Shorts: []byte{'r'}, TakesValue: true}, + {Key: FlagGenerateTaskDocsStyle, Name: "style", Longs: []string{"style"}, Shorts: []byte{'s'}, TakesValue: true}, + }, +} + +// generate task-stubs +var cmdGenerateTaskStubs = &argv.Command{ + Name: "task-stubs", + Key: CmdGenerateTaskStubs, + Flags: []*argv.Flag{ + {Key: FlagGenerateTaskStubsDir, Name: "dir", Longs: []string{"dir"}, Shorts: []byte{'d'}, TakesValue: true}, + {Key: FlagGenerateTaskStubsMiseBin, Name: "mise-bin", Longs: []string{"mise-bin"}, Shorts: []byte{'m'}, TakesValue: true}, + }, +} + +// generate tool-stub +var cmdGenerateToolStub = &argv.Command{ + Name: "tool-stub", + Key: CmdGenerateToolStub, + Flags: []*argv.Flag{ + {Key: FlagGenerateToolStubBin, Name: "bin", Longs: []string{"bin"}, Shorts: []byte{'b'}, TakesValue: true}, + {Key: FlagGenerateToolStubBootstrap, Name: "bootstrap", Longs: []string{"bootstrap"}}, + {Key: FlagGenerateToolStubBootstrapVersion, Name: "bootstrap-version", Longs: []string{"bootstrap-version"}, TakesValue: true}, + {Key: FlagGenerateToolStubFetch, Name: "fetch", Longs: []string{"fetch"}}, + {Key: FlagGenerateToolStubHttp, Name: "http", Longs: []string{"http"}, TakesValue: true}, + {Key: FlagGenerateToolStubLock, Name: "lock", Longs: []string{"lock"}}, + {Key: FlagGenerateToolStubPlatformBin, Name: "platform-bin", Longs: []string{"platform-bin"}, TakesValue: true}, + {Key: FlagGenerateToolStubPlatformUrl, Name: "platform-url", Longs: []string{"platform-url"}, TakesValue: true}, + {Key: FlagGenerateToolStubSkipDownload, Name: "skip-download", Longs: []string{"skip-download"}}, + {Key: FlagGenerateToolStubUrl, Name: "url", Longs: []string{"url"}, Shorts: []byte{'u'}, TakesValue: true}, + {Key: FlagGenerateToolStubVersion, Name: "version", Longs: []string{"version"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgGenerateToolStubOutput, Name: "OUTPUT"}, + }, +} + +// github +var cmdGithub = &argv.Command{ + Name: "github", + Key: CmdGithub, + Subcommands: []*argv.Command{cmdGithubToken}, +} + +// github token +var cmdGithubToken = &argv.Command{ + Name: "token", + Key: CmdGithubToken, + Flags: []*argv.Flag{ + {Key: FlagGithubTokenOauth, Name: "oauth", Longs: []string{"oauth"}}, + {Key: FlagGithubTokenRaw, Name: "raw", Longs: []string{"raw"}}, + {Key: FlagGithubTokenRefresh, Name: "refresh", Longs: []string{"refresh"}}, + {Key: FlagGithubTokenUnmask, Name: "unmask", Longs: []string{"unmask"}}, + }, + Args: []*argv.Arg{ + {Key: ArgGithubTokenHost, Name: "HOST"}, + }, +} + +// global +var cmdGlobal = &argv.Command{ + Name: "global", + Key: CmdGlobal, + Flags: []*argv.Flag{ + {Key: FlagGlobalFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}}, + {Key: FlagGlobalPath, Name: "path", Longs: []string{"path"}}, + {Key: FlagGlobalPin, Name: "pin", Longs: []string{"pin"}}, + {Key: FlagGlobalRemove, Name: "remove", Longs: []string{"remove"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgGlobalToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// hook-env +var cmdHookEnv = &argv.Command{ + Name: "hook-env", + Key: CmdHookEnv, + Flags: []*argv.Flag{ + {Key: FlagHookEnvForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagHookEnvQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagHookEnvShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagHookEnvReason, Name: "reason", Longs: []string{"reason"}, TakesValue: true}, + {Key: FlagHookEnvStatus, Name: "status", Longs: []string{"status"}}, + }, +} + +// hook-not-found +var cmdHookNotFound = &argv.Command{ + Name: "hook-not-found", + Key: CmdHookNotFound, + Flags: []*argv.Flag{ + {Key: FlagHookNotFoundShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgHookNotFoundBin, Name: "BIN"}, + }, +} + +// implode +var cmdImplode = &argv.Command{ + Name: "implode", + Key: CmdImplode, + Flags: []*argv.Flag{ + {Key: FlagImplodeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagImplodeConfig, Name: "config", Longs: []string{"config"}}, + }, +} + +// edit +var cmdEdit = &argv.Command{ + Name: "edit", + Key: CmdEdit, + Flags: []*argv.Flag{ + {Key: FlagEditGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagEditDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagEditToolVersions, Name: "tool-versions", Longs: []string{"tool-versions"}, Shorts: []byte{'t'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgEditPath, Name: "PATH"}, + }, +} + +// install +var cmdInstall = &argv.Command{ + Name: "install", + Key: CmdInstall, + Aliases: []string{"i"}, + Flags: []*argv.Flag{ + {Key: FlagInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagInstallJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagInstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagInstallVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}}, + {Key: FlagInstallDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}}, + {Key: FlagInstallMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + {Key: FlagInstallMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagInstallRaw, Name: "raw", Longs: []string{"raw"}}, + {Key: FlagInstallShared, Name: "shared", Longs: []string{"shared"}, TakesValue: true}, + {Key: FlagInstallSystem, Name: "system", Longs: []string{"system"}}, + }, + Args: []*argv.Arg{ + {Key: ArgInstallToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// install-into +var cmdInstallInto = &argv.Command{ + Name: "install-into", + Key: CmdInstallInto, + Args: []*argv.Arg{ + {Key: ArgInstallIntoToolVersion, Name: "TOOL@VERSION"}, + {Key: ArgInstallIntoPath, Name: "PATH"}, + }, +} + +// latest +var cmdLatest = &argv.Command{ + Name: "latest", + Key: CmdLatest, + Flags: []*argv.Flag{ + {Key: FlagLatestInstalled, Name: "installed", Longs: []string{"installed"}, Shorts: []byte{'i'}}, + {Key: FlagLatestMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgLatestToolVersion, Name: "TOOL@VERSION"}, + {Key: ArgLatestAsdfVersion, Name: "ASDF_VERSION"}, + }, +} + +// link +var cmdLink = &argv.Command{ + Name: "link", + Key: CmdLink, + Aliases: []string{"ln"}, + Flags: []*argv.Flag{ + {Key: FlagLinkForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + }, + Args: []*argv.Arg{ + {Key: ArgLinkToolVersion, Name: "TOOL@VERSION"}, + {Key: ArgLinkPath, Name: "PATH"}, + }, +} + +// local +var cmdLocal = &argv.Command{ + Name: "local", + Key: CmdLocal, + Aliases: []string{"l"}, + Flags: []*argv.Flag{ + {Key: FlagLocalParent, Name: "parent", Longs: []string{"parent"}, Shorts: []byte{'p'}}, + {Key: FlagLocalFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}}, + {Key: FlagLocalPath, Name: "path", Longs: []string{"path"}}, + {Key: FlagLocalPin, Name: "pin", Longs: []string{"pin"}}, + {Key: FlagLocalRemove, Name: "remove", Longs: []string{"remove"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgLocalToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// lock +var cmdLock = &argv.Command{ + Name: "lock", + Key: CmdLock, + Flags: []*argv.Flag{ + {Key: FlagLockGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagLockJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagLockDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagLockPlatform, Name: "platform", Longs: []string{"platform"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagLockBump, Name: "bump", Longs: []string{"bump"}}, + {Key: FlagLockJson, Name: "json", Longs: []string{"json"}}, + {Key: FlagLockLocal, Name: "local", Longs: []string{"local"}}, + {Key: FlagLockMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgLockTool, Name: "TOOL", Var: true}, + }, +} + +// ls +var cmdLs = &argv.Command{ + Name: "ls", + Key: CmdLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagLsCurrent, Name: "current", Longs: []string{"current"}, Shorts: []byte{'c'}}, + {Key: FlagLsGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagLsInstalled, Name: "installed", Longs: []string{"installed"}, Shorts: []byte{'i'}}, + {Key: FlagLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagLsMissing, Name: "missing", Longs: []string{"missing"}, Shorts: []byte{'m'}}, + {Key: FlagLsOffline, Name: "offline", Longs: []string{"offline"}, Shorts: []byte{'o'}}, + {Key: FlagLsPlugin, Name: "plugin", Longs: []string{"plugin"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagLsAllSources, Name: "all-sources", Longs: []string{"all-sources"}}, + {Key: FlagLsMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagLsNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + {Key: FlagLsOutdated, Name: "outdated", Longs: []string{"outdated"}}, + {Key: FlagLsPrefix, Name: "prefix", Longs: []string{"prefix"}, TakesValue: true}, + {Key: FlagLsPrunable, Name: "prunable", Longs: []string{"prunable"}}, + }, + Args: []*argv.Arg{ + {Key: ArgLsInstalledTool, Name: "INSTALLED_TOOL", Var: true}, + }, +} + +// ls-remote +var cmdLsRemote = &argv.Command{ + Name: "ls-remote", + Key: CmdLsRemote, + Aliases: []string{"list-all", "list-remote"}, + Flags: []*argv.Flag{ + {Key: FlagLsRemoteAll, Name: "all", Longs: []string{"all"}}, + {Key: FlagLsRemoteMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + {Key: FlagLsRemoteJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagLsRemoteNoVersionsHost, Name: "no-versions-host", Longs: []string{"no-versions-host"}}, + {Key: FlagLsRemotePrerelease, Name: "prerelease", Longs: []string{"prerelease"}}, + {Key: FlagLsRemoteStrictMetadata, Name: "strict-metadata", Longs: []string{"strict-metadata"}}, + }, + Args: []*argv.Arg{ + {Key: ArgLsRemoteToolVersion, Name: "TOOL@VERSION"}, + {Key: ArgLsRemotePrefix, Name: "PREFIX"}, + }, +} + +// mcp +var cmdMcp = &argv.Command{ + Name: "mcp", + Key: CmdMcp, +} + +// oci +var cmdOci = &argv.Command{ + Name: "oci", + Key: CmdOci, + Subcommands: []*argv.Command{cmdOciBuild, cmdOciPush, cmdOciRun}, +} + +// oci build +var cmdOciBuild = &argv.Command{ + Name: "build", + Key: CmdOciBuild, + Flags: []*argv.Flag{ + {Key: FlagOciBuildCopy, Name: "copy", Longs: []string{"copy"}, TakesValue: true}, + {Key: FlagOciBuildOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true}, + {Key: FlagOciBuildFrom, Name: "from", Longs: []string{"from"}, TakesValue: true}, + {Key: FlagOciBuildIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}}, + {Key: FlagOciBuildTag, Name: "tag", Longs: []string{"tag"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagOciBuildMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true}, + {Key: FlagOciBuildNoMise, Name: "no-mise", Longs: []string{"no-mise"}}, + {Key: FlagOciBuildOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true}, + }, +} + +// oci push +var cmdOciPush = &argv.Command{ + Name: "push", + Key: CmdOciPush, + Flags: []*argv.Flag{ + {Key: FlagOciPushCacheFrom, Name: "cache-from", Longs: []string{"cache-from"}, TakesValue: true}, + {Key: FlagOciPushFrom, Name: "from", Longs: []string{"from"}, TakesValue: true}, + {Key: FlagOciPushImageDir, Name: "image-dir", Longs: []string{"image-dir"}, TakesValue: true}, + {Key: FlagOciPushIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}}, + {Key: FlagOciPushMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true}, + {Key: FlagOciPushNoCache, Name: "no-cache", Longs: []string{"no-cache"}}, + {Key: FlagOciPushNoMise, Name: "no-mise", Longs: []string{"no-mise"}}, + {Key: FlagOciPushOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true}, + {Key: FlagOciPushUpdateIndex, Name: "update-index", Longs: []string{"update-index"}}, + }, + Args: []*argv.Arg{ + {Key: ArgOciPushRef, Name: "REF"}, + }, +} + +// oci run +var cmdOciRun = &argv.Command{ + Name: "run", + Key: CmdOciRun, + Flags: []*argv.Flag{ + {Key: FlagOciRunEngine, Name: "engine", Longs: []string{"engine"}, TakesValue: true}, + {Key: FlagOciRunFrom, Name: "from", Longs: []string{"from"}, TakesValue: true}, + {Key: FlagOciRunImageDir, Name: "image-dir", Longs: []string{"image-dir"}, TakesValue: true}, + {Key: FlagOciRunIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}}, + {Key: FlagOciRunKeep, Name: "keep", Longs: []string{"keep"}}, + {Key: FlagOciRunMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true}, + {Key: FlagOciRunNoMise, Name: "no-mise", Longs: []string{"no-mise"}}, + {Key: FlagOciRunOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true}, + {Key: FlagOciRunVolume, Name: "volume", Longs: []string{"volume"}, TakesValue: true}, + {Key: FlagOciRunEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagOciRunInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}}, + {Key: FlagOciRunTty, Name: "tty", Longs: []string{"tty"}, Shorts: []byte{'t'}}, + {Key: FlagOciRunWorkdir, Name: "workdir", Longs: []string{"workdir"}, Shorts: []byte{'w'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgOciRunCmd, Name: "CMD", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, +} + +// outdated +var cmdOutdated = &argv.Command{ + Name: "outdated", + Key: CmdOutdated, + Flags: []*argv.Flag{ + {Key: FlagOutdatedJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagOutdatedBump, Name: "bump", Longs: []string{"bump"}, Shorts: []byte{'l'}}, + {Key: FlagOutdatedInactive, Name: "inactive", Longs: []string{"inactive"}}, + {Key: FlagOutdatedLocal, Name: "local", Longs: []string{"local"}}, + {Key: FlagOutdatedMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagOutdatedNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, + Args: []*argv.Arg{ + {Key: ArgOutdatedToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// patrons +var cmdPatrons = &argv.Command{ + Name: "patrons", + Key: CmdPatrons, + Flags: []*argv.Flag{ + {Key: FlagPatronsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagPatronsRefresh, Name: "refresh", Longs: []string{"refresh"}}, + }, +} + +// plugins +var cmdPlugins = &argv.Command{ + Name: "plugins", + Key: CmdPlugins, + Aliases: []string{"p", "plugin", "plugin-list"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagPluginsCore, Name: "core", Longs: []string{"core"}, Shorts: []byte{'c'}}, + {Key: FlagPluginsUrls, Name: "urls", Longs: []string{"urls"}, Shorts: []byte{'u'}}, + {Key: FlagPluginsRefs, Name: "refs", Longs: []string{"refs"}}, + {Key: FlagPluginsUser, Name: "user", Longs: []string{"user"}}, + }, + Subcommands: []*argv.Command{cmdPluginsInstall, cmdPluginsLink, cmdPluginsLs, cmdPluginsLsRemote, cmdPluginsUninstall, cmdPluginsUpdate}, +} + +// plugins install +var cmdPluginsInstall = &argv.Command{ + Name: "install", + Key: CmdPluginsInstall, + Aliases: []string{"i", "a", "add"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsInstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagPluginsInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagPluginsInstallJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagPluginsInstallVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}}, + }, + Args: []*argv.Arg{ + {Key: ArgPluginsInstallNewPlugin, Name: "NEW_PLUGIN"}, + {Key: ArgPluginsInstallGitUrl, Name: "GIT_URL"}, + {Key: ArgPluginsInstallRest, Name: "REST", Var: true}, + }, +} + +// plugins link +var cmdPluginsLink = &argv.Command{ + Name: "link", + Key: CmdPluginsLink, + Aliases: []string{"ln"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsLinkForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + }, + Args: []*argv.Arg{ + {Key: ArgPluginsLinkName, Name: "NAME"}, + {Key: ArgPluginsLinkDir, Name: "DIR"}, + }, +} + +// plugins ls +var cmdPluginsLs = &argv.Command{ + Name: "ls", + Key: CmdPluginsLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsLsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagPluginsLsCore, Name: "core", Longs: []string{"core"}, Shorts: []byte{'c'}}, + {Key: FlagPluginsLsOutdated, Name: "outdated", Longs: []string{"outdated"}, Shorts: []byte{'o'}}, + {Key: FlagPluginsLsUrls, Name: "urls", Longs: []string{"urls"}, Shorts: []byte{'u'}}, + {Key: FlagPluginsLsRefs, Name: "refs", Longs: []string{"refs"}}, + {Key: FlagPluginsLsUser, Name: "user", Longs: []string{"user"}}, + }, +} + +// plugins ls-remote +var cmdPluginsLsRemote = &argv.Command{ + Name: "ls-remote", + Key: CmdPluginsLsRemote, + Aliases: []string{"list-remote", "list-all"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsLsRemoteUrls, Name: "urls", Longs: []string{"urls"}, Shorts: []byte{'u'}}, + {Key: FlagPluginsLsRemoteOnlyNames, Name: "only-names", Longs: []string{"only-names"}}, + }, +} + +// plugins uninstall +var cmdPluginsUninstall = &argv.Command{ + Name: "uninstall", + Key: CmdPluginsUninstall, + Aliases: []string{"remove", "rm"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsUninstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagPluginsUninstallPurge, Name: "purge", Longs: []string{"purge"}, Shorts: []byte{'p'}}, + }, + Args: []*argv.Arg{ + {Key: ArgPluginsUninstallPlugin, Name: "PLUGIN", Var: true}, + }, +} + +// plugins update +var cmdPluginsUpdate = &argv.Command{ + Name: "update", + Key: CmdPluginsUpdate, + Aliases: []string{"up", "upgrade"}, + Flags: []*argv.Flag{ + {Key: FlagPluginsUpdateJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgPluginsUpdatePlugin, Name: "PLUGIN", Var: true}, + }, +} + +// deps +var cmdDeps = &argv.Command{ + Name: "deps", + Key: CmdDeps, + Aliases: []string{"dep", "prepare"}, + Flags: []*argv.Flag{ + {Key: FlagDepsExplain, Name: "explain", Longs: []string{"explain"}}, + {Key: FlagDepsForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagDepsDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagDepsList, Name: "list", Longs: []string{"list"}}, + {Key: FlagDepsMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagDepsOnly, Name: "only", Longs: []string{"only"}, TakesValue: true}, + {Key: FlagDepsSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgDepsProvider, Name: "PROVIDER"}, + }, + Subcommands: []*argv.Command{cmdDepsAdd, cmdDepsInstall, cmdDepsRemove}, +} + +// deps add +var cmdDepsAdd = &argv.Command{ + Name: "add", + Key: CmdDepsAdd, + Flags: []*argv.Flag{ + {Key: FlagDepsAddDev, Name: "dev", Longs: []string{"dev"}, Shorts: []byte{'D'}}, + }, + Args: []*argv.Arg{ + {Key: ArgDepsAddPackages, Name: "PACKAGES", Var: true}, + }, +} + +// deps install +var cmdDepsInstall = &argv.Command{ + Name: "install", + Key: CmdDepsInstall, + Flags: []*argv.Flag{ + {Key: FlagDepsInstallExplain, Name: "explain", Longs: []string{"explain"}}, + {Key: FlagDepsInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagDepsInstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagDepsInstallList, Name: "list", Longs: []string{"list"}}, + {Key: FlagDepsInstallMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagDepsInstallOnly, Name: "only", Longs: []string{"only"}, TakesValue: true}, + {Key: FlagDepsInstallSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgDepsInstallProvider, Name: "PROVIDER"}, + }, +} + +// deps remove +var cmdDepsRemove = &argv.Command{ + Name: "remove", + Key: CmdDepsRemove, + Args: []*argv.Arg{ + {Key: ArgDepsRemovePackages, Name: "PACKAGES", Var: true}, + }, +} + +// prune +var cmdPrune = &argv.Command{ + Name: "prune", + Key: CmdPrune, + Flags: []*argv.Flag{ + {Key: FlagPruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagPruneConfigs, Name: "configs", Longs: []string{"configs"}}, + {Key: FlagPruneDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}}, + {Key: FlagPruneMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagPruneTools, Name: "tools", Longs: []string{"tools"}}, + }, + Args: []*argv.Arg{ + {Key: ArgPruneInstalledTool, Name: "INSTALLED_TOOL", Var: true}, + }, +} + +// registry +var cmdRegistry = &argv.Command{ + Name: "registry", + Key: CmdRegistry, + Flags: []*argv.Flag{ + {Key: FlagRegistryBackend, Name: "backend", Longs: []string{"backend"}, Shorts: []byte{'b'}, TakesValue: true}, + {Key: FlagRegistryComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagRegistryHideAliased, Name: "hide-aliased", Longs: []string{"hide-aliased"}}, + {Key: FlagRegistryJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagRegistrySecurity, Name: "security", Longs: []string{"security"}}, + }, + Args: []*argv.Arg{ + {Key: ArgRegistryName, Name: "NAME"}, + }, +} + +// render-help +var cmdRenderHelp = &argv.Command{ + Name: "render-help", + Key: CmdRenderHelp, +} + +// reshim +var cmdReshim = &argv.Command{ + Name: "reshim", + Key: CmdReshim, + Flags: []*argv.Flag{ + {Key: FlagReshimForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + }, + Args: []*argv.Arg{ + {Key: ArgReshimTool, Name: "TOOL"}, + {Key: ArgReshimVersion, Name: "VERSION"}, + }, +} + +// run +var cmdRun = &argv.Command{ + Name: "run", + Key: CmdRun, + Aliases: []string{"r"}, + Flags: []*argv.Flag{ + {Key: FlagRunAffected, Name: "affected", Longs: []string{"affected"}}, + {Key: FlagRunAffectedBase, Name: "affected-base", Longs: []string{"affected-base"}, TakesValue: true}, + {Key: FlagRunAffectedExplain, Name: "affected-explain", Longs: []string{"affected-explain"}}, + {Key: FlagRunAffectedHead, Name: "affected-head", Longs: []string{"affected-head"}, TakesValue: true}, + {Key: FlagRunAffectedJson, Name: "affected-json", Longs: []string{"affected-json"}}, + {Key: FlagRunContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}}, + {Key: FlagRunCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true}, + {Key: FlagRunForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagRunJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagRunDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagRunOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true}, + {Key: FlagRunQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagRunRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}}, + {Key: FlagRunShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagRunSilent, Name: "silent", Longs: []string{"silent"}, Shorts: []byte{'S'}}, + {Key: FlagRunTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagRunAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true}, + {Key: FlagRunAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true}, + {Key: FlagRunAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true}, + {Key: FlagRunAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true}, + {Key: FlagRunDenyAll, Name: "deny-all", Longs: []string{"deny-all"}}, + {Key: FlagRunDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}}, + {Key: FlagRunDenyNet, Name: "deny-net", Longs: []string{"deny-net"}}, + {Key: FlagRunDenyRead, Name: "deny-read", Longs: []string{"deny-read"}}, + {Key: FlagRunDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}}, + {Key: FlagRunFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}}, + {Key: FlagRunNoCache, Name: "no-cache", Longs: []string{"no-cache"}}, + {Key: FlagRunNoDeps, Name: "no-deps", Longs: []string{"no-deps"}}, + {Key: FlagRunNoTimings, Name: "no-timings", Longs: []string{"no-timings"}}, + {Key: FlagRunSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}}, + {Key: FlagRunSkipTools, Name: "skip-tools", Longs: []string{"skip-tools"}}, + {Key: FlagRunTaskCache, Name: "task-cache", Longs: []string{"task-cache"}, TakesValue: true}, + {Key: FlagRunTaskCacheExplain, Name: "task-cache-explain", Longs: []string{"task-cache-explain"}}, + {Key: FlagRunTaskCacheExplainJson, Name: "task-cache-explain-json", Longs: []string{"task-cache-explain-json"}}, + {Key: FlagRunTaskCacheStats, Name: "task-cache-stats", Longs: []string{"task-cache-stats"}}, + {Key: FlagRunTimeout, Name: "timeout", Longs: []string{"timeout"}, TakesValue: true}, + {Key: FlagRunTimings, Name: "timings", Longs: []string{"timings"}}, + }, +} + +// search +var cmdSearch = &argv.Command{ + Name: "search", + Key: CmdSearch, + Flags: []*argv.Flag{ + {Key: FlagSearchInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}}, + {Key: FlagSearchMatchType, Name: "match-type", Longs: []string{"match-type"}, Shorts: []byte{'m'}, TakesValue: true}, + {Key: FlagSearchNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, + Args: []*argv.Arg{ + {Key: ArgSearchName, Name: "NAME"}, + }, +} + +// self-update +var cmdSelfUpdate = &argv.Command{ + Name: "self-update", + Key: CmdSelfUpdate, + Flags: []*argv.Flag{ + {Key: FlagSelfUpdateForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagSelfUpdateYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}}, + {Key: FlagSelfUpdateNoPlugins, Name: "no-plugins", Longs: []string{"no-plugins"}}, + }, + Args: []*argv.Arg{ + {Key: ArgSelfUpdateVersion, Name: "VERSION"}, + }, +} + +// set +var cmdSet = &argv.Command{ + Name: "set", + Key: CmdSet, + Aliases: []string{"ev", "env-vars"}, + Flags: []*argv.Flag{ + {Key: FlagSetEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true}, + {Key: FlagSetGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagSetAgeEncrypt, Name: "age-encrypt", Longs: []string{"age-encrypt"}}, + {Key: FlagSetAgeKeyFile, Name: "age-key-file", Longs: []string{"age-key-file"}, TakesValue: true}, + {Key: FlagSetAgeRecipient, Name: "age-recipient", Longs: []string{"age-recipient"}, TakesValue: true}, + {Key: FlagSetAgeSshRecipient, Name: "age-ssh-recipient", Longs: []string{"age-ssh-recipient"}, TakesValue: true}, + {Key: FlagSetComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagSetFile, Name: "file", Longs: []string{"file", "path"}, TakesValue: true}, + {Key: FlagSetNoRedact, Name: "no-redact", Longs: []string{"no-redact"}}, + {Key: FlagSetPrompt, Name: "prompt", Longs: []string{"prompt"}}, + {Key: FlagSetRemove, Name: "remove", Longs: []string{"remove", "rm", "unset"}, TakesValue: true}, + {Key: FlagSetStdin, Name: "stdin", Longs: []string{"stdin"}}, + }, + Args: []*argv.Arg{ + {Key: ArgSetEnvVar, Name: "ENV_VAR", Var: true}, + }, +} + +// settings +var cmdSettings = &argv.Command{ + Name: "settings", + Key: CmdSettings, + Flags: []*argv.Flag{ + {Key: FlagSettingsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagSettingsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagSettingsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}, Global: true}, + {Key: FlagSettingsToml, Name: "toml", Longs: []string{"toml"}, Shorts: []byte{'T'}}, + {Key: FlagSettingsComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagSettingsJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsSetting, Name: "SETTING"}, + {Key: ArgSettingsValue, Name: "VALUE"}, + }, + Subcommands: []*argv.Command{cmdSettingsAdd, cmdSettingsGet, cmdSettingsLs, cmdSettingsSet, cmdSettingsUnset}, +} + +// settings add +var cmdSettingsAdd = &argv.Command{ + Name: "add", + Key: CmdSettingsAdd, + Flags: []*argv.Flag{ + {Key: FlagSettingsAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsAddSetting, Name: "SETTING"}, + {Key: ArgSettingsAddValue, Name: "VALUE"}, + }, +} + +// settings get +var cmdSettingsGet = &argv.Command{ + Name: "get", + Key: CmdSettingsGet, + Flags: []*argv.Flag{ + {Key: FlagSettingsGetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsGetSetting, Name: "SETTING"}, + }, +} + +// settings ls +var cmdSettingsLs = &argv.Command{ + Name: "ls", + Key: CmdSettingsLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagSettingsLsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagSettingsLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagSettingsLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}, Global: true}, + {Key: FlagSettingsLsToml, Name: "toml", Longs: []string{"toml"}, Shorts: []byte{'T'}}, + {Key: FlagSettingsLsComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagSettingsLsJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsLsSetting, Name: "SETTING"}, + }, +} + +// settings set +var cmdSettingsSet = &argv.Command{ + Name: "set", + Key: CmdSettingsSet, + Aliases: []string{"create"}, + Flags: []*argv.Flag{ + {Key: FlagSettingsSetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsSetSetting, Name: "SETTING"}, + {Key: ArgSettingsSetValue, Name: "VALUE"}, + }, +} + +// settings unset +var cmdSettingsUnset = &argv.Command{ + Name: "unset", + Key: CmdSettingsUnset, + Aliases: []string{"rm", "remove", "delete", "del"}, + Flags: []*argv.Flag{ + {Key: FlagSettingsUnsetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + }, + Args: []*argv.Arg{ + {Key: ArgSettingsUnsetKey, Name: "KEY"}, + }, +} + +// shell +var cmdShell = &argv.Command{ + Name: "shell", + Key: CmdShell, + Aliases: []string{"sh"}, + Flags: []*argv.Flag{ + {Key: FlagShellJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagShellUnset, Name: "unset", Longs: []string{"unset"}, Shorts: []byte{'u'}}, + {Key: FlagShellRaw, Name: "raw", Longs: []string{"raw"}}, + }, + Args: []*argv.Arg{ + {Key: ArgShellToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// shell-alias +var cmdShellAlias = &argv.Command{ + Name: "shell-alias", + Key: CmdShellAlias, + Flags: []*argv.Flag{ + {Key: FlagShellAliasNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, + Subcommands: []*argv.Command{cmdShellAliasGet, cmdShellAliasLs, cmdShellAliasSet, cmdShellAliasUnset}, +} + +// shell-alias get +var cmdShellAliasGet = &argv.Command{ + Name: "get", + Key: CmdShellAliasGet, + Args: []*argv.Arg{ + {Key: ArgShellAliasGetShellAlias, Name: "shell_alias"}, + }, +} + +// shell-alias ls +var cmdShellAliasLs = &argv.Command{ + Name: "ls", + Key: CmdShellAliasLs, + Aliases: []string{"list"}, + Flags: []*argv.Flag{ + {Key: FlagShellAliasLsNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, +} + +// shell-alias set +var cmdShellAliasSet = &argv.Command{ + Name: "set", + Key: CmdShellAliasSet, + Aliases: []string{"add", "create"}, + Args: []*argv.Arg{ + {Key: ArgShellAliasSetShellAlias, Name: "shell_alias"}, + {Key: ArgShellAliasSetCommand, Name: "COMMAND"}, + }, +} + +// shell-alias unset +var cmdShellAliasUnset = &argv.Command{ + Name: "unset", + Key: CmdShellAliasUnset, + Aliases: []string{"rm", "remove", "delete", "del"}, + Args: []*argv.Arg{ + {Key: ArgShellAliasUnsetShellAlias, Name: "shell_alias"}, + }, +} + +// sponsors +var cmdSponsors = &argv.Command{ + Name: "sponsors", + Key: CmdSponsors, +} + +// sync +var cmdSync = &argv.Command{ + Name: "sync", + Key: CmdSync, + Subcommands: []*argv.Command{cmdSyncNode, cmdSyncPython, cmdSyncRuby}, +} + +// sync node +var cmdSyncNode = &argv.Command{ + Name: "node", + Key: CmdSyncNode, + Flags: []*argv.Flag{ + {Key: FlagSyncNodeBrew, Name: "brew", Longs: []string{"brew"}}, + {Key: FlagSyncNodeNodenv, Name: "nodenv", Longs: []string{"nodenv"}}, + {Key: FlagSyncNodeNvm, Name: "nvm", Longs: []string{"nvm"}}, + }, +} + +// sync python +var cmdSyncPython = &argv.Command{ + Name: "python", + Key: CmdSyncPython, + Flags: []*argv.Flag{ + {Key: FlagSyncPythonPyenv, Name: "pyenv", Longs: []string{"pyenv"}}, + {Key: FlagSyncPythonUv, Name: "uv", Longs: []string{"uv"}}, + }, +} + +// sync ruby +var cmdSyncRuby = &argv.Command{ + Name: "ruby", + Key: CmdSyncRuby, + Flags: []*argv.Flag{ + {Key: FlagSyncRubyBrew, Name: "brew", Longs: []string{"brew"}}, + }, +} + +// tasks +var cmdTasks = &argv.Command{ + Name: "tasks", + Key: CmdTasks, + Aliases: []string{"t", "task"}, + Flags: []*argv.Flag{ + {Key: FlagTasksGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagTasksJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagTasksLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagTasksExtended, Name: "extended", Longs: []string{"extended"}, Shorts: []byte{'x'}}, + {Key: FlagTasksAll, Name: "all", Longs: []string{"all"}}, + {Key: FlagTasksComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagTasksHidden, Name: "hidden", Longs: []string{"hidden"}}, + {Key: FlagTasksNameOnly, Name: "name-only", Longs: []string{"name-only"}}, + {Key: FlagTasksNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + {Key: FlagTasksSort, Name: "sort", Longs: []string{"sort"}, TakesValue: true}, + {Key: FlagTasksSortOrder, Name: "sort-order", Longs: []string{"sort-order"}, TakesValue: true}, + {Key: FlagTasksUsage, Name: "usage", Longs: []string{"usage"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksTask, Name: "TASK"}, + }, + Subcommands: []*argv.Command{cmdTasksAdd, cmdTasksDeps, cmdTasksEdit, cmdTasksGraph, cmdTasksInfo, cmdTasksLs, cmdTasksRun, cmdTasksValidate}, +} + +// tasks add +var cmdTasksAdd = &argv.Command{ + Name: "add", + Key: CmdTasksAdd, + Flags: []*argv.Flag{ + {Key: FlagTasksAddAlias, Name: "alias", Longs: []string{"alias"}, Shorts: []byte{'a'}, TakesValue: true}, + {Key: FlagTasksAddDepends, Name: "depends", Longs: []string{"depends"}, Shorts: []byte{'d'}, TakesValue: true}, + {Key: FlagTasksAddDir, Name: "dir", Longs: []string{"dir"}, Shorts: []byte{'D'}, TakesValue: true}, + {Key: FlagTasksAddFile, Name: "file", Longs: []string{"file"}, Shorts: []byte{'f'}}, + {Key: FlagTasksAddHide, Name: "hide", Longs: []string{"hide"}, Shorts: []byte{'H'}}, + {Key: FlagTasksAddQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagTasksAddRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}}, + {Key: FlagTasksAddSources, Name: "sources", Longs: []string{"sources"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagTasksAddWaitFor, Name: "wait-for", Longs: []string{"wait-for"}, Shorts: []byte{'w'}, TakesValue: true}, + {Key: FlagTasksAddDependsPost, Name: "depends-post", Longs: []string{"depends-post"}, TakesValue: true}, + {Key: FlagTasksAddDescription, Name: "description", Longs: []string{"description"}, TakesValue: true}, + {Key: FlagTasksAddOutputs, Name: "outputs", Longs: []string{"outputs"}, TakesValue: true}, + {Key: FlagTasksAddRunWindows, Name: "run-windows", Longs: []string{"run-windows"}, TakesValue: true}, + {Key: FlagTasksAddShell, Name: "shell", Longs: []string{"shell"}, TakesValue: true}, + {Key: FlagTasksAddSilent, Name: "silent", Longs: []string{"silent"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksAddTask, Name: "TASK"}, + {Key: ArgTasksAddRun, Name: "RUN", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, +} + +// tasks deps +var cmdTasksDeps = &argv.Command{ + Name: "deps", + Key: CmdTasksDeps, + Flags: []*argv.Flag{ + {Key: FlagTasksDepsCompact, Name: "compact", Longs: []string{"compact"}}, + {Key: FlagTasksDepsDot, Name: "dot", Longs: []string{"dot"}}, + {Key: FlagTasksDepsHidden, Name: "hidden", Longs: []string{"hidden"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksDepsTasks, Name: "TASKS", Var: true}, + }, +} + +// tasks edit +var cmdTasksEdit = &argv.Command{ + Name: "edit", + Key: CmdTasksEdit, + Flags: []*argv.Flag{ + {Key: FlagTasksEditPath, Name: "path", Longs: []string{"path"}, Shorts: []byte{'p'}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksEditTask, Name: "TASK"}, + }, +} + +// tasks graph +var cmdTasksGraph = &argv.Command{ + Name: "graph", + Key: CmdTasksGraph, + Flags: []*argv.Flag{ + {Key: FlagTasksGraphJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagTasksGraphExplain, Name: "explain", Longs: []string{"explain"}}, + {Key: FlagTasksGraphNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + }, +} + +// tasks info +var cmdTasksInfo = &argv.Command{ + Name: "info", + Key: CmdTasksInfo, + Flags: []*argv.Flag{ + {Key: FlagTasksInfoJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksInfoTask, Name: "TASK"}, + }, +} + +// tasks ls +var cmdTasksLs = &argv.Command{ + Name: "ls", + Key: CmdTasksLs, + Flags: []*argv.Flag{ + {Key: FlagTasksLsGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagTasksLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagTasksLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}}, + {Key: FlagTasksLsExtended, Name: "extended", Longs: []string{"extended"}, Shorts: []byte{'x'}}, + {Key: FlagTasksLsAll, Name: "all", Longs: []string{"all"}}, + {Key: FlagTasksLsComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagTasksLsHidden, Name: "hidden", Longs: []string{"hidden"}}, + {Key: FlagTasksLsNameOnly, Name: "name-only", Longs: []string{"name-only"}}, + {Key: FlagTasksLsNoHeader, Name: "no-header", Longs: []string{"no-header"}}, + {Key: FlagTasksLsSort, Name: "sort", Longs: []string{"sort"}, TakesValue: true}, + {Key: FlagTasksLsSortOrder, Name: "sort-order", Longs: []string{"sort-order"}, TakesValue: true}, + {Key: FlagTasksLsUsage, Name: "usage", Longs: []string{"usage"}}, + }, +} + +// tasks run +var cmdTasksRun = &argv.Command{ + Name: "run", + Key: CmdTasksRun, + Aliases: []string{"r"}, + Flags: []*argv.Flag{ + {Key: FlagTasksRunAffected, Name: "affected", Longs: []string{"affected"}}, + {Key: FlagTasksRunAffectedBase, Name: "affected-base", Longs: []string{"affected-base"}, TakesValue: true}, + {Key: FlagTasksRunAffectedExplain, Name: "affected-explain", Longs: []string{"affected-explain"}}, + {Key: FlagTasksRunAffectedHead, Name: "affected-head", Longs: []string{"affected-head"}, TakesValue: true}, + {Key: FlagTasksRunAffectedJson, Name: "affected-json", Longs: []string{"affected-json"}}, + {Key: FlagTasksRunContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}}, + {Key: FlagTasksRunCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true}, + {Key: FlagTasksRunForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagTasksRunJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagTasksRunDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagTasksRunOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true}, + {Key: FlagTasksRunQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagTasksRunRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}}, + {Key: FlagTasksRunShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagTasksRunSilent, Name: "silent", Longs: []string{"silent"}, Shorts: []byte{'S'}}, + {Key: FlagTasksRunTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagTasksRunAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true}, + {Key: FlagTasksRunAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true}, + {Key: FlagTasksRunAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true}, + {Key: FlagTasksRunAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true}, + {Key: FlagTasksRunDenyAll, Name: "deny-all", Longs: []string{"deny-all"}}, + {Key: FlagTasksRunDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}}, + {Key: FlagTasksRunDenyNet, Name: "deny-net", Longs: []string{"deny-net"}}, + {Key: FlagTasksRunDenyRead, Name: "deny-read", Longs: []string{"deny-read"}}, + {Key: FlagTasksRunDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}}, + {Key: FlagTasksRunFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}}, + {Key: FlagTasksRunNoCache, Name: "no-cache", Longs: []string{"no-cache"}}, + {Key: FlagTasksRunNoDeps, Name: "no-deps", Longs: []string{"no-deps"}}, + {Key: FlagTasksRunNoTimings, Name: "no-timings", Longs: []string{"no-timings"}}, + {Key: FlagTasksRunSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}}, + {Key: FlagTasksRunSkipTools, Name: "skip-tools", Longs: []string{"skip-tools"}}, + {Key: FlagTasksRunTaskCache, Name: "task-cache", Longs: []string{"task-cache"}, TakesValue: true}, + {Key: FlagTasksRunTaskCacheExplain, Name: "task-cache-explain", Longs: []string{"task-cache-explain"}}, + {Key: FlagTasksRunTaskCacheExplainJson, Name: "task-cache-explain-json", Longs: []string{"task-cache-explain-json"}}, + {Key: FlagTasksRunTaskCacheStats, Name: "task-cache-stats", Longs: []string{"task-cache-stats"}}, + {Key: FlagTasksRunTimeout, Name: "timeout", Longs: []string{"timeout"}, TakesValue: true}, + {Key: FlagTasksRunTimings, Name: "timings", Longs: []string{"timings"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksRunTask, Name: "TASK"}, + {Key: ArgTasksRunArgs, Name: "ARGS", Var: true}, + {Key: ArgTasksRunArgsLast, Name: "ARGS_LAST", Var: true, DoubleDash: argv.DoubleDashRequired}, + }, +} + +// tasks validate +var cmdTasksValidate = &argv.Command{ + Name: "validate", + Key: CmdTasksValidate, + Flags: []*argv.Flag{ + {Key: FlagTasksValidateErrorsOnly, Name: "errors-only", Longs: []string{"errors-only"}}, + {Key: FlagTasksValidateJson, Name: "json", Longs: []string{"json"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTasksValidateTasks, Name: "TASKS", Var: true}, + }, +} + +// test-tool +var cmdTestTool = &argv.Command{ + Name: "test-tool", + Key: CmdTestTool, + Flags: []*argv.Flag{ + {Key: FlagTestToolAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagTestToolJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagTestToolAllConfig, Name: "all-config", Longs: []string{"all-config"}}, + {Key: FlagTestToolIncludeNonDefined, Name: "include-non-defined", Longs: []string{"include-non-defined"}}, + {Key: FlagTestToolRaw, Name: "raw", Longs: []string{"raw"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTestToolTools, Name: "TOOLS", Var: true}, + }, +} + +// token +var cmdToken = &argv.Command{ + Name: "token", + Key: CmdToken, + Subcommands: []*argv.Command{cmdTokenForgejo, cmdTokenGithub, cmdTokenGitlab}, +} + +// token forgejo +var cmdTokenForgejo = &argv.Command{ + Name: "forgejo", + Key: CmdTokenForgejo, + Flags: []*argv.Flag{ + {Key: FlagTokenForgejoUnmask, Name: "unmask", Longs: []string{"unmask"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTokenForgejoHost, Name: "HOST"}, + }, +} + +// token github +var cmdTokenGithub = &argv.Command{ + Name: "github", + Key: CmdTokenGithub, + Flags: []*argv.Flag{ + {Key: FlagTokenGithubOauth, Name: "oauth", Longs: []string{"oauth"}}, + {Key: FlagTokenGithubRaw, Name: "raw", Longs: []string{"raw"}}, + {Key: FlagTokenGithubRefresh, Name: "refresh", Longs: []string{"refresh"}}, + {Key: FlagTokenGithubUnmask, Name: "unmask", Longs: []string{"unmask"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTokenGithubHost, Name: "HOST"}, + }, +} + +// token gitlab +var cmdTokenGitlab = &argv.Command{ + Name: "gitlab", + Key: CmdTokenGitlab, + Flags: []*argv.Flag{ + {Key: FlagTokenGitlabUnmask, Name: "unmask", Longs: []string{"unmask"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTokenGitlabHost, Name: "HOST"}, + }, +} + +// tool +var cmdTool = &argv.Command{ + Name: "tool", + Key: CmdTool, + Flags: []*argv.Flag{ + {Key: FlagToolJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + {Key: FlagToolActive, Name: "active", Longs: []string{"active"}}, + {Key: FlagToolBackend, Name: "backend", Longs: []string{"backend"}}, + {Key: FlagToolConfigSource, Name: "config-source", Longs: []string{"config-source"}}, + {Key: FlagToolDescription, Name: "description", Longs: []string{"description"}}, + {Key: FlagToolInstalled, Name: "installed", Longs: []string{"installed"}}, + {Key: FlagToolRequested, Name: "requested", Longs: []string{"requested"}}, + {Key: FlagToolToolOptions, Name: "tool-options", Longs: []string{"tool-options"}}, + }, + Args: []*argv.Arg{ + {Key: ArgToolTool, Name: "TOOL"}, + }, +} + +// tool-stub +var cmdToolStub = &argv.Command{ + Name: "tool-stub", + Key: CmdToolStub, + Args: []*argv.Arg{ + {Key: ArgToolStubFile, Name: "FILE"}, + {Key: ArgToolStubArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic}, + }, +} + +// trust +var cmdTrust = &argv.Command{ + Name: "trust", + Key: CmdTrust, + Flags: []*argv.Flag{ + {Key: FlagTrustAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagTrustIgnore, Name: "ignore", Longs: []string{"ignore"}}, + {Key: FlagTrustShow, Name: "show", Longs: []string{"show"}}, + {Key: FlagTrustUntrust, Name: "untrust", Longs: []string{"untrust"}}, + }, + Args: []*argv.Arg{ + {Key: ArgTrustConfigFile, Name: "CONFIG_FILE"}, + }, +} + +// uninstall +var cmdUninstall = &argv.Command{ + Name: "uninstall", + Key: CmdUninstall, + Flags: []*argv.Flag{ + {Key: FlagUninstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}}, + {Key: FlagUninstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagUninstallDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}}, + }, + Args: []*argv.Arg{ + {Key: ArgUninstallInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Var: true}, + }, +} + +// unset +var cmdUnset = &argv.Command{ + Name: "unset", + Key: CmdUnset, + Flags: []*argv.Flag{ + {Key: FlagUnsetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true}, + {Key: FlagUnsetGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + }, + Args: []*argv.Arg{ + {Key: ArgUnsetEnvKey, Name: "ENV_KEY", Var: true}, + }, +} + +// untrust +var cmdUntrust = &argv.Command{ + Name: "untrust", + Key: CmdUntrust, + Args: []*argv.Arg{ + {Key: ArgUntrustConfigFile, Name: "CONFIG_FILE"}, + }, +} + +// unuse +var cmdUnuse = &argv.Command{ + Name: "unuse", + Key: CmdUnuse, + Aliases: []string{"rm", "remove"}, + Flags: []*argv.Flag{ + {Key: FlagUnuseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagUnuseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagUnusePath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagUnuseNoPrune, Name: "no-prune", Longs: []string{"no-prune"}}, + }, + Args: []*argv.Arg{ + {Key: ArgUnuseInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Var: true}, + }, +} + +// upgrade +var cmdUpgrade = &argv.Command{ + Name: "upgrade", + Key: CmdUpgrade, + Aliases: []string{"up"}, + Flags: []*argv.Flag{ + {Key: FlagUpgradeInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}}, + {Key: FlagUpgradeJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagUpgradeBump, Name: "bump", Longs: []string{"bump"}, Shorts: []byte{'l'}}, + {Key: FlagUpgradeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagUpgradeExclude, Name: "exclude", Longs: []string{"exclude"}, Shorts: []byte{'x'}, TakesValue: true}, + {Key: FlagUpgradeDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}}, + {Key: FlagUpgradeInactive, Name: "inactive", Longs: []string{"inactive"}}, + {Key: FlagUpgradeLocal, Name: "local", Longs: []string{"local"}}, + {Key: FlagUpgradeMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + {Key: FlagUpgradeMonorepo, Name: "monorepo", Longs: []string{"monorepo"}}, + {Key: FlagUpgradeNoPrune, Name: "no-prune", Longs: []string{"no-prune"}}, + {Key: FlagUpgradeRaw, Name: "raw", Longs: []string{"raw"}}, + }, + Args: []*argv.Arg{ + {Key: ArgUpgradeInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Var: true}, + }, +} + +// usage +var cmdUsage = &argv.Command{ + Name: "usage", + Key: CmdUsage, +} + +// use +var cmdUse = &argv.Command{ + Name: "use", + Key: CmdUse, + Aliases: []string{"u"}, + Flags: []*argv.Flag{ + {Key: FlagUseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagUseForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}}, + {Key: FlagUseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}}, + {Key: FlagUseJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true}, + {Key: FlagUseDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}}, + {Key: FlagUsePath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true}, + {Key: FlagUseDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}}, + {Key: FlagUseFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}}, + {Key: FlagUseMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age"}, TakesValue: true}, + {Key: FlagUsePin, Name: "pin", Longs: []string{"pin"}}, + {Key: FlagUseRaw, Name: "raw", Longs: []string{"raw"}}, + {Key: FlagUseRemove, Name: "remove", Longs: []string{"remove"}, TakesValue: true}, + }, + Args: []*argv.Arg{ + {Key: ArgUseToolVersion, Name: "TOOL@VERSION", Var: true}, + }, +} + +// version +var cmdVersion = &argv.Command{ + Name: "version", + Key: CmdVersion, + Aliases: []string{"v"}, + Flags: []*argv.Flag{ + {Key: FlagVersionJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}}, + }, +} + +// watch +var cmdWatch = &argv.Command{ + Name: "watch", + Key: CmdWatch, + Aliases: []string{"w"}, + Flags: []*argv.Flag{ + {Key: FlagWatchTaskFlag, Name: "task-flag", Longs: []string{"task-flag"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagWatchGlob, Name: "glob", Longs: []string{"glob"}, Shorts: []byte{'g'}, TakesValue: true}, + {Key: FlagWatchSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}}, + {Key: FlagWatchWatch, Name: "watch", Longs: []string{"watch"}, Shorts: []byte{'w'}, TakesValue: true}, + {Key: FlagWatchWatchNonRecursive, Name: "watch-non-recursive", Longs: []string{"watch-non-recursive"}, Shorts: []byte{'W'}, TakesValue: true}, + {Key: FlagWatchWatchFile, Name: "watch-file", Longs: []string{"watch-file"}, Shorts: []byte{'F'}, TakesValue: true}, + {Key: FlagWatchClear, Name: "clear", Longs: []string{"clear"}, Shorts: []byte{'c'}, TakesValue: true}, + {Key: FlagWatchOnBusyUpdate, Name: "on-busy-update", Longs: []string{"on-busy-update"}, Shorts: []byte{'o'}, TakesValue: true}, + {Key: FlagWatchRestart, Name: "restart", Longs: []string{"restart"}, Shorts: []byte{'r'}}, + {Key: FlagWatchSignal, Name: "signal", Longs: []string{"signal"}, Shorts: []byte{'s'}, TakesValue: true}, + {Key: FlagWatchStopSignal, Name: "stop-signal", Longs: []string{"stop-signal"}, TakesValue: true}, + {Key: FlagWatchStopTimeout, Name: "stop-timeout", Longs: []string{"stop-timeout"}, TakesValue: true}, + {Key: FlagWatchMapSignal, Name: "map-signal", Longs: []string{"map-signal"}, TakesValue: true}, + {Key: FlagWatchDebounce, Name: "debounce", Longs: []string{"debounce"}, Shorts: []byte{'d'}, TakesValue: true}, + {Key: FlagWatchStdinQuit, Name: "stdin-quit", Longs: []string{"stdin-quit"}}, + {Key: FlagWatchNoVcsIgnore, Name: "no-vcs-ignore", Longs: []string{"no-vcs-ignore"}}, + {Key: FlagWatchNoProjectIgnore, Name: "no-project-ignore", Longs: []string{"no-project-ignore"}}, + {Key: FlagWatchNoGlobalIgnore, Name: "no-global-ignore", Longs: []string{"no-global-ignore"}}, + {Key: FlagWatchNoDefaultIgnore, Name: "no-default-ignore", Longs: []string{"no-default-ignore"}}, + {Key: FlagWatchNoDiscoverIgnore, Name: "no-discover-ignore", Longs: []string{"no-discover-ignore"}}, + {Key: FlagWatchIgnoreNothing, Name: "ignore-nothing", Longs: []string{"ignore-nothing"}}, + {Key: FlagWatchPostpone, Name: "postpone", Longs: []string{"postpone"}, Shorts: []byte{'p'}}, + {Key: FlagWatchDelayRun, Name: "delay-run", Longs: []string{"delay-run"}, TakesValue: true}, + {Key: FlagWatchPoll, Name: "poll", Longs: []string{"poll"}, TakesValue: true}, + {Key: FlagWatchShell, Name: "shell", Longs: []string{"shell"}, TakesValue: true}, + {Key: FlagWatchN, Name: "n", Shorts: []byte{'n'}}, + {Key: FlagWatchEmitEventsTo, Name: "emit-events-to", Longs: []string{"emit-events-to"}, TakesValue: true}, + {Key: FlagWatchOnlyEmitEvents, Name: "only-emit-events", Longs: []string{"only-emit-events"}}, + {Key: FlagWatchEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true}, + {Key: FlagWatchWrapProcess, Name: "wrap-process", Longs: []string{"wrap-process"}, TakesValue: true}, + {Key: FlagWatchNotify, Name: "notify", Longs: []string{"notify"}, Shorts: []byte{'N'}}, + {Key: FlagWatchColor, Name: "color", Longs: []string{"color"}, TakesValue: true}, + {Key: FlagWatchTimings, Name: "timings", Longs: []string{"timings"}}, + {Key: FlagWatchQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}}, + {Key: FlagWatchBell, Name: "bell", Longs: []string{"bell"}}, + {Key: FlagWatchProjectOrigin, Name: "project-origin", Longs: []string{"project-origin"}, TakesValue: true}, + {Key: FlagWatchWorkdir, Name: "workdir", Longs: []string{"workdir"}, TakesValue: true}, + {Key: FlagWatchExts, Name: "exts", Longs: []string{"exts"}, Shorts: []byte{'e'}, TakesValue: true}, + {Key: FlagWatchFilter, Name: "filter", Longs: []string{"filter"}, Shorts: []byte{'f'}, TakesValue: true}, + {Key: FlagWatchFilterFile, Name: "filter-file", Longs: []string{"filter-file"}, TakesValue: true}, + {Key: FlagWatchFilterProg, Name: "filter-prog", Longs: []string{"filter-prog"}, Shorts: []byte{'J'}, TakesValue: true}, + {Key: FlagWatchIgnore, Name: "ignore", Longs: []string{"ignore"}, Shorts: []byte{'i'}, TakesValue: true}, + {Key: FlagWatchIgnoreFile, Name: "ignore-file", Longs: []string{"ignore-file"}, TakesValue: true}, + {Key: FlagWatchFsEvents, Name: "fs-events", Longs: []string{"fs-events"}, TakesValue: true}, + {Key: FlagWatchNoMeta, Name: "no-meta", Longs: []string{"no-meta"}}, + {Key: FlagWatchPrintEvents, Name: "print-events", Longs: []string{"print-events"}}, + {Key: FlagWatchManual, Name: "manual", Longs: []string{"manual"}}, + }, + Args: []*argv.Arg{ + {Key: ArgWatchTask, Name: "TASK"}, + {Key: ArgWatchArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic}, + }, +} + +// where +var cmdWhere = &argv.Command{ + Name: "where", + Key: CmdWhere, + Args: []*argv.Arg{ + {Key: ArgWhereToolVersion, Name: "TOOL@VERSION"}, + {Key: ArgWhereAsdfVersion, Name: "ASDF_VERSION"}, + }, +} + +// which +var cmdWhich = &argv.Command{ + Name: "which", + Key: CmdWhich, + Flags: []*argv.Flag{ + {Key: FlagWhichTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true}, + {Key: FlagWhichComplete, Name: "complete", Longs: []string{"complete"}}, + {Key: FlagWhichPlugin, Name: "plugin", Longs: []string{"plugin"}}, + {Key: FlagWhichVersion, Name: "version", Longs: []string{"version"}}, + }, + Args: []*argv.Arg{ + {Key: ArgWhichBinName, Name: "BIN_NAME"}, + }, +} diff --git a/mise.toml b/mise.toml index bed723347..61b4c192a 100644 --- a/mise.toml +++ b/mise.toml @@ -163,6 +163,18 @@ run = [ "cargo run -q -p xtask -- gen-shadow benches/mise.usage.kdl benches/shadows/mise-clap clap", ] +# The Go tables the shadow test parses against, from the same spec and for the same +# reasons: checked in so a reviewer sees the diff when the emitter's vocabulary +# changes, and so CI can assert that regenerating produces none. +# +# No formatter afterwards, unlike `render:fig`. `usage generate go` emits +# gofmt-clean output, which `lint:go` then checks — a generated file an adopter has +# to reformat before committing is one the generator is not finished with. +[tasks."gen-go"] +dir = "{{config_root}}" +depends = ['build'] +run = "usage generate go -f benches/mise.usage.kdl --package mise -o go/internal/shadow/mise/tables.go" + # The shadow comparison: usage against clap, at mise's scale. Reported, never gated — see # the note in tak.toml. Takes an optional path to write the markdown to. [tasks."perf:shadow"] From dcd3446e2d7000b5949eae48a69b1d1d0a2038d9 Mon Sep 17 00:00:00 2001 From: default <216188+jdx@users.noreply.github.com> Date: Mon, 17 Aug 2026 00:37:48 +0000 Subject: [PATCH 2/2] fix(go): regenerate mise's tables, and pin the pointer the emitter got wrong MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The one-line diff is the whole point of checking this file in: `DefaultSubcommand` went from `cmdOciRun` to `cmdRun`, which is what the fix in the commit before this one produces. A reviewer reading the generated diff is how the bug was found, and regenerating is how the fix is shown to be real. Also pins it as a test. Nothing in the parse of an ordinary command line shows the difference — `mise build` reports `unexpected_arg` either way, because mise's spec gives `run` no positional and task names come from a mount — so the pointer is asserted directly, against `cmdRun` and specifically not against `cmdOciRun`, the one a whole-tree search used to win with. Co-Authored-By: Claude Opus 5 --- go/internal/shadow/mise/parse_test.go | 24 ++++++++++++++++++++++++ go/internal/shadow/mise/tables.go | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/go/internal/shadow/mise/parse_test.go b/go/internal/shadow/mise/parse_test.go index ffb301353..9c5f8c96c 100644 --- a/go/internal/shadow/mise/parse_test.go +++ b/go/internal/shadow/mise/parse_test.go @@ -120,6 +120,30 @@ func TestRealCommandLines(t *testing.T) { } } +// TestDefaultSubcommandIsTheRootsOwnRun pins a pointer, because a review of the +// generated diff is what caught it being the wrong one. +// +// mise declares `default_subcommand run`, which names a subcommand of the root. +// It also has an `oci run`, and an emitter that resolved the name against the +// whole tree found that one first in depth-first order — so `mise build` would +// have descended into a command that is not the root's child at all. Nothing in +// the parse of an ordinary command line shows the difference, which is why it is +// asserted directly rather than through a binding. +func TestDefaultSubcommandIsTheRootsOwnRun(t *testing.T) { + if Root.DefaultSubcommand != cmdRun { + name := "" + if Root.DefaultSubcommand != nil { + name = Root.DefaultSubcommand.Name + } + t.Fatalf("default subcommand should be the root's own `run`, got %q", name) + } + // The one the whole-tree search used to win with, so a regression is specific + // rather than merely "not cmdRun". + if Root.DefaultSubcommand == cmdOciRun { + t.Error("resolved against the whole tree again: this is `oci run`") + } +} + // TestKeysAreUniqueAndDense checks the property generated dispatch depends on. // // Code switches on a Key, so two entries sharing one would bind the wrong field — diff --git a/go/internal/shadow/mise/tables.go b/go/internal/shadow/mise/tables.go index c217f265e..e75d010a7 100644 --- a/go/internal/shadow/mise/tables.go +++ b/go/internal/shadow/mise/tables.go @@ -1103,7 +1103,7 @@ var Root = &argv.Command{ {Key: ArgTaskArgsLast, Name: "TASK_ARGS_LAST", Var: true, DoubleDash: argv.DoubleDashRequired}, }, Subcommands: []*argv.Command{cmdActivate, cmdToolAlias, cmdAsdf, cmdBackends, cmdBinPaths, cmdBootstrap, cmdCache, cmdCompletion, cmdConfig, cmdCurrent, cmdDeactivate, cmdDirenv, cmdDotfiles, cmdDoctor, cmdEn, cmdEnv, cmdExec, cmdFmt, cmdGenerate, cmdGithub, cmdGlobal, cmdHookEnv, cmdHookNotFound, cmdImplode, cmdEdit, cmdInstall, cmdInstallInto, cmdLatest, cmdLink, cmdLocal, cmdLock, cmdLs, cmdLsRemote, cmdMcp, cmdOci, cmdOutdated, cmdPatrons, cmdPlugins, cmdDeps, cmdPrune, cmdRegistry, cmdRenderHelp, cmdReshim, cmdRun, cmdSearch, cmdSelfUpdate, cmdSet, cmdSettings, cmdShell, cmdShellAlias, cmdSponsors, cmdSync, cmdTasks, cmdTestTool, cmdToken, cmdTool, cmdToolStub, cmdTrust, cmdUninstall, cmdUnset, cmdUntrust, cmdUnuse, cmdUpgrade, cmdUsage, cmdUse, cmdVersion, cmdWatch, cmdWhere, cmdWhich}, - DefaultSubcommand: cmdOciRun, + DefaultSubcommand: cmdRun, } // activate