1
0
Files
vault_totp/cmd/vault_totp_util/main.go
brent saner d94a46af0b initial
2025-12-16 21:45:08 -05:00

73 lines
1.6 KiB
Go

package main
import (
`errors`
`fmt`
`log`
`os`
`update_vault_totp/version`
`github.com/davecgh/go-spew/spew`
`github.com/jessevdk/go-flags`
`r00t2.io/goutils/logging`
)
func main() {
var err error
log.SetOutput(os.Stderr)
parser.EnvNamespaceDelimiter = ""
if _, err = parser.Parse(); err != nil {
var flagsErr *flags.Error
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)
}
}
if version.Ver, err = version.Version(); err != nil {
log.Panicln(err)
}
// If args.Version or args.DetailVersion are true, just print them and exit.
if args.DetailVersion || args.Version {
if args.Version {
fmt.Println(version.Ver.Short())
return
} else if args.DetailVersion {
fmt.Println(version.Ver.Detail())
return
}
}
// We want to set up logging before anything else.
if args.DoDebug {
logFlagsRuntime = logFlagsDebug
}
logger = logging.GetMultiLogger(args.DoDebug, "ZorkBot")
if err = logger.AddDefaultLogger(
"default",
logFlagsRuntime,
"/var/log/zorkbot/zorkbot.log", "~/logs/zorkbot.log",
); err != nil {
log.Panicln(err)
}
if err = logger.Setup(); err != nil {
log.Panicln(err)
}
defer logger.Shutdown()
logger.Info("main: ZorkBot version %v", version.Ver.Short())
logger.Debug("main: ZorkBot version (extended):\n%v", version.Ver.Detail())
logger.Debug("main: Invocation args:\n%s", spew.Sdump(args))
}