-x, -f, env vars, prepping for hashing

This commit is contained in:
2022-05-22 04:43:12 -04:00
parent f76edd3022
commit 1d4d7c5538
15 changed files with 262 additions and 38 deletions

View File

@@ -1,12 +1,15 @@
package main
import (
"encoding/json"
"encoding/xml"
"fmt"
"log"
"os"
"strings"
"github.com/jessevdk/go-flags"
"gopkg.in/yaml.v3"
"r00t2.io/pwgen/pwgenerator"
)
@@ -17,6 +20,8 @@ func main() {
var err error
var genOpts *pwgenerator.GenOpts
var passwds []string
var pwc *pwgenerator.PwCollection
var b []byte
if _, err = flags.Parse(&a); err != nil {
switch flagsErr := err.(type) {
@@ -30,6 +35,10 @@ func main() {
}
}
if a.ExplicitLen != 0 {
a.MinLen = a.ExplicitLen
a.MaxLen = a.ExplicitLen
}
genOpts = &pwgenerator.GenOpts{
Alpha: !a.NoAlpha,
Numeric: !a.NoNum,
@@ -56,12 +65,31 @@ func main() {
}
}
if passwds, err = genOpts.Generate(); err != nil {
log.Panicln(err)
if strings.TrimSpace(a.Format) != "" {
if pwc, err = genOpts.GenerateCollection(nil); err != nil {
log.Panicln(err)
}
switch a.Format {
case "json":
if b, err = json.MarshalIndent(pwc, "", " "); err != nil {
log.Panicln(err)
}
fmt.Println(string(b))
case "yaml":
if b, err = yaml.Marshal(pwc); err != nil {
log.Panicln(err)
}
fmt.Println(string(b))
case "xml":
if b, err = xml.MarshalIndent(pwc, "", " "); err != nil {
log.Panicln(err)
}
fmt.Println(string(b))
}
} else {
if passwds, err = genOpts.Generate(); err != nil {
log.Panicln(err)
}
fmt.Println(strings.Join(passwds, "\n"))
}
fmt.Println(strings.Join(passwds, "\n"))
// fmt.Printf("%#v\n", a)
// fmt.Printf("%#v\n", genOpts)
}