1package main 2 3//go:generate go run _generator/main.go 4 5import ( 6 "flag" 7 "fmt" 8 9 "github.com/martinhoefling/goxkcdpwgen/xkcdpwgen" 10) 11 12var wordcount = flag.Int("n", 4, "Number of words to generate a password from") 13var delim = flag.String("d", " ", "Delimiter to separate words") 14var lang = flag.String("l", "en", "Use non english language with custom list, currently only de = german is supported") 15var effshort = flag.Bool("s", false, "Use eff_short instead of eff_long as wordlist") 16var capitalize = flag.Bool("c", false, "Capitalize words") 17var pwcount = flag.Int("N", 1, "Number of passwords to generate") 18 19func main() { 20 flag.Parse() 21 g := xkcdpwgen.NewGenerator() 22 g.SetNumWords(*wordcount) 23 g.SetDelimiter(*delim) 24 g.SetCapitalize(*capitalize) 25 if *effshort { 26 g.UseWordlistEFFShort() 27 } 28 if *lang != "en" { 29 if err := g.UseLangWordlist(*lang); err != nil { 30 panic(err) 31 } 32 } 33 for i := 0; i < *pwcount; i++ { 34 fmt.Println(g.GeneratePasswordString()) 35 } 36} 37