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

71 lines
1.2 KiB
Go

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