1
0
Files
vault_totp/cmd/user/main.go
2025-12-23 20:58:56 -05:00

65 lines
1.5 KiB
Go

package main
import (
"errors"
"log"
"github.com/davecgh/go-spew/spew"
"github.com/jessevdk/go-flags"
`r00t2.io/vault_totp/internal`
)
func main() {
var err error
var parser *flags.Parser = flags.NewParser(args, flags.Default)
parser.NamespaceDelimiter = "-"
parser.EnvNamespaceDelimiter = "_"
if _, err = parser.Parse(); err != nil {
switch {
case errors.As(err, &flagsErr):
switch {
case errors.Is(flagsErr.Type, flags.ErrHelp), errors.Is(flagsErr.Type, flags.ErrCommandRequired), errors.Is(flagsErr.Type, flags.ErrRequired): // These print their relevant messages by themselves.
return
default:
log.Panicln(err)
}
default:
log.Panicln(err)
}
}
defer internal.Logger.Shutdown()
logger.Debug("Initialized with args:\n%v", spew.Sdump(args))
logger.Debug("main: Configuring.")
if err = configure(); err != nil {
logger.Err("main: Received error while configuring: %v", err)
log.Panicln(err)
}
logger.Debug("main: Fetching entity.")
if err = getEnt(); err != nil {
logger.Err("main: Received error while fetching entity: %v", err)
log.Panicln(err)
}
if args.Gen.LookupOnly {
if err = printEntity(); err != nil {
logger.Err("main: Received error while rendering entity out: %v", err)
log.Panicln(err)
}
logger.Debug("main: Done.")
return
}
logger.Debug("main: Generating TOTP seed/secret.")
if err = genTotp(); err != nil {
logger.Err("main: Received error while generating TOTP secret: %v", err)
log.Panicln(err)
}
logger.Debug("main: Done.")
}