diff options
| author | ewy <ewy0@protonmail.com> | 2026-05-17 02:13:25 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-05-17 02:13:25 +0200 |
| commit | 5cfc8bd701037a215c62789916cda283a018d3fd (patch) | |
| tree | d29c1b65e69314917e15390ce43e8bba0ae2bc2d /modes.go | |
| parent | eb340173fe0508240da4bb03d37a5a2fa259c2fd (diff) | |
add priority to version and completion to reduce start times for those modes
Diffstat (limited to 'modes.go')
| -rw-r--r-- | modes.go | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -46,13 +46,20 @@ var profileFd *os.File var UnknownShellError = errors.New("$SHELL not set or empty") -// statelessModes are program modes which do not require state to operate. -// like --version and --completion -var statelessModes = ModeMap[func() error]{ +// uninitializedModes are modes which can run before the program runs initializers +var uninitializedModes = ModeMap[func() error]{ flags.Version: func() error { _, err := spool.Print("%s\n", version) return err }, + flags.Completion: func() error { + return completion.Echo() + }, +} + +// statelessModes are program modes which do not require state to operate. +// like --version and --completion +var statelessModes = ModeMap[func() error]{ flags.InstallCompletion: func() error { sh := os.Getenv("SHELL") if sh == "" { @@ -61,9 +68,6 @@ var statelessModes = ModeMap[func() error]{ _, sh = filepath.Split(sh) return completion.Add(sh) }, - flags.Completion: func() error { - return completion.Echo() - }, flags.Profile: func() error { fd, err := os.Create("pik-profile.out") if err != nil { |
