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