gogcli/internal/cmd/account.go
Peter Steinberger 8e878fe485
Some checks failed
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
fix(cli): avoid vet shadow
2026-01-10 03:13:12 +01:00

38 lines
891 B
Go

package cmd
import (
"os"
"strings"
"github.com/steipete/gogcli/internal/secrets"
)
var openSecretsStoreForAccount = secrets.OpenDefault
func requireAccount(flags *RootFlags) (string, error) {
if v := strings.TrimSpace(flags.Account); v != "" {
return v, nil
}
if v := strings.TrimSpace(os.Getenv("GOG_ACCOUNT")); v != "" {
return v, nil
}
if store, err := openSecretsStoreForAccount(); err == nil {
if defaultEmail, err := store.GetDefaultAccount(); err == nil {
defaultEmail = strings.TrimSpace(defaultEmail)
if defaultEmail != "" {
return defaultEmail, nil
}
}
if toks, err := store.ListTokens(); err == nil {
if len(toks) == 1 {
if v := strings.TrimSpace(toks[0].Email); v != "" {
return v, nil
}
}
}
}
return "", usage("missing --account (or set GOG_ACCOUNT, set default via `gog auth manage`, or store exactly one token)")
}