From 5cfc8bd701037a215c62789916cda283a018d3fd Mon Sep 17 00:00:00 2001 From: ewy Date: Sun, 17 May 2026 02:13:25 +0200 Subject: add priority to version and completion to reduce start times for those modes --- modes.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'modes.go') diff --git a/modes.go b/modes.go index bc9e90f..1d651b6 100644 --- a/modes.go +++ b/modes.go @@ -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 { -- cgit v1.3.1