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.") }