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..9c5f8c96c --- /dev/null +++ b/go/internal/shadow/mise/parse_test.go @@ -0,0 +1,229 @@ +// 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) + } + }) + } +} + +// 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 — +// 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..e75d010a7 --- /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: cmdRun, +} + +// 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"]