1
0
Files
vault_totp/cmd/add/main.go
2025-12-23 20:58:56 -05:00

74 lines
1.2 KiB
Go

package main
import (
"log"
"os"
"r00t2.io/vault_totp/internal"
)
func main() {
var err error
var s string
var doExit bool
var vaultOk bool
log.SetOutput(os.Stdout)
if doExit, err = internal.PrepParser("add", args.CommonArgs, parser); err != nil {
log.Panicln(err)
}
if doExit {
return
}
logger = internal.Logger
if err = internal.Validate(args); err != nil {
log.Panicln(err)
}
go readUrls()
vaultOk = <-vaultReady
if !vaultOk {
log.Panicln("Could not get OK from Vault client.")
}
if args.AddArgs.OtpFile != nil && len(args.AddArgs.OtpFile) > 0 {
for _, s = range args.AddArgs.OtpFile {
wg.Add(1)
go parseOtpFile(s)
}
}
if args.AddArgs.OtpExplicit {
wg.Add(1)
go parseExplicit(args.ExplicitOtp)
}
if args.AddArgs.OtpUrl != nil && len(args.AddArgs.OtpUrl) > 0 {
for _, s = range args.AddArgs.OtpUrl {
wg.Add(1)
go parseOtpUri(s)
}
}
if args.AddArgs.QrImgPath != nil && len(args.AddArgs.QrImgPath) > 0 {
for _, s = range args.AddArgs.QrImgPath {
wg.Add(1)
go parseQrFile(s)
}
}
if args.AddArgs.SecretService {
wg.Add(1)
go parseSs()
}
go func() {
wg.Wait()
close(urlChan)
}()
<-doneChan
logger.Debug("main: Done.")
}