1
0
This commit is contained in:
brent saner
2025-12-16 21:45:08 -05:00
commit d94a46af0b
17 changed files with 1298 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
package main
import (
`fmt`
`log`
`os`
`update_vault_totp/internal`
"golang.org/x/term"
"r00t2.io/sysutils/envs"
)
func getToken() (tok string, err error) {
var p1 []byte
var oldState *term.State
if envs.HasEnv(internal.VaultTokEnv) {
tok = os.Getenv(internal.VaultTokEnv)
return
}
// Prompt for it instead
fmt.Println("Vault token needed.\nVault token (will not be echoed back):")
if oldState, err = term.GetState(internal.TermFd); err != nil {
return
}
defer func() {
if err = term.Restore(internal.TermFd, oldState); err != nil {
log.Println("restore failed:", err)
}
}()
if p1, err = term.ReadPassword(internal.TermFd); err != nil {
return
}
tok = string(p1)
return
}
func main() {
var err error
var errs []error
var tok string
var c *internal.Client
if tok, err = getToken(); err != nil {
log.Panicln(err)
}
if c, err = internal.New(tok, internal.DefAddr, internal.TgtMnt, internal.CollNm); err != nil {
log.Panicln(err)
}
c.DeleteAllVaultKeys()
if err = c.Close(); err != nil {
log.Println(err)
}
if errs = c.Errors(); len(errs) > 0 {
for _, err = range errs {
log.Println(err)
}
}
log.Println("Done.")
}

View File

@@ -0,0 +1,70 @@
package main
import (
`fmt`
`log`
`os`
`update_vault_totp/internal`
"golang.org/x/term"
"r00t2.io/sysutils/envs"
)
func getToken() (tok string, err error) {
var p1 []byte
var oldState *term.State
if envs.HasEnv(internal.VaultTokEnv) {
tok = os.Getenv(internal.VaultTokEnv)
return
}
// Prompt for it instead
fmt.Println("Vault token needed.\nVault token (will not be echoed back):")
if oldState, err = term.GetState(internal.TermFd); err != nil {
return
}
defer func() {
if err = term.Restore(internal.TermFd, oldState); err != nil {
log.Println("restore failed:", err)
}
}()
if p1, err = term.ReadPassword(internal.TermFd); err != nil {
return
}
tok = string(p1)
return
}
func main() {
var err error
var errs []error
var tok string
var c *internal.Client
if tok, err = getToken(); err != nil {
log.Panicln(err)
}
if c, err = internal.New(tok, internal.DefAddr, internal.TgtMnt, internal.CollNm); err != nil {
log.Panicln(err)
}
c.Sync()
if err = c.Close(); err != nil {
log.Println(err)
}
if errs = c.Errors(); len(errs) > 0 {
for _, err = range errs {
log.Println(err)
}
}
log.Println("Done.")
}

View File

@@ -0,0 +1,27 @@
package main
import (
"log"
`update_vault_totp/internal`
sysdUtil "github.com/coreos/go-systemd/v22/util"
`github.com/jessevdk/go-flags`
`r00t2.io/goutils/logging`
)
var (
isSystemd bool = sysdUtil.IsRunningSystemd()
)
const (
logFlags int = log.LstdFlags | log.Lmsgprefix
logFlagsDebug int = logFlags | log.Llongfile
)
var (
logger *logging.MultiLogger
args *internal.Args = new(internal.Args)
logFlagsRuntime int = logFlags
parser *flags.Parser = flags.NewParser(args, flags.Default)
)

View File

@@ -0,0 +1,72 @@
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))
}