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