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