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}