master
1package generate
2
3import (
4 "fmt"
5 "strings"
6
7 "github.com/kahnwong/swissknife/internal/utils"
8 "github.com/sethvargo/go-diceware/diceware"
9)
10
11func generatePassphrase() (string, error) {
12 // Generate 6 words using the diceware algorithm.
13 list, err := diceware.Generate(6)
14 if err != nil {
15 return "", fmt.Errorf("failed to generate passphrases: %w", err)
16 }
17
18 res := strings.Join(list, "-")
19
20 return res, nil
21}
22
23func Passphrase() error {
24 passphrase, err := generatePassphrase()
25 if err != nil {
26 return err
27 }
28
29 if err = utils.WriteToClipboard(passphrase); err != nil {
30 return err
31 }
32
33 fmt.Printf("%s\n", passphrase)
34 return nil
35}