[cli] Don't perform CLI secret initialisation when not needed

Calling `GetOrCreateClISecret()` can cause issues in some unattended scenarios.
This commit is contained in:
tigattack
2024-11-13 12:22:08 +00:00
parent b8981be2e6
commit cfae8523a1

View File

@@ -49,14 +49,28 @@ func main() {
panic(err)
}
}
// Define a set of commands that do not require KeyHolder initialisation.
skipKeyHolderCommands := map[string]struct{}{"version": {}, "docs": {}, "help": {}}
var keyHolder *secrets.KeyHolder
// Only initialise KeyHolder if the command isn't in the skip list.
if len(os.Args) > 1 {
if _, skip := skipKeyHolderCommands[os.Args[1]]; !skip {
keyHolder = secrets.NewKeyHolder(secrets.GetOrCreateClISecret())
}
}
ctrl := pkg.ClICtrl{
Client: api.NewClient(api.Params{
Debug: viper.GetBool("log.http"),
Host: viper.GetString("endpoint.api"),
}),
DB: db,
KeyHolder: secrets.NewKeyHolder(secrets.GetOrCreateClISecret()),
KeyHolder: keyHolder,
}
err = ctrl.Init()
if err != nil {
panic(err)