package main import ( "github.com/Masterminds/sprig/v3" "os" "text/template" "fmt" ) func main() { helpText := `Usage: program [masterPassword] Parameters: appName Application name (same as in secrets.yaml.gotmpl) appAccountName Application account name (same as in secrets.yaml.gotmpl) masterPassword Master password (optional)` args := os.Args[1:] var masterPassword string var appName string var appAccountName string if len(args) == 2 { appName = args[0] appAccountName = args[1] masterPassword = "sovereign-workplace" } else if len(args) == 3 { appName = args[0] appAccountName = args[1] masterPassword = args[2] } else { fmt.Printf(helpText) } tmpl, err := template.New("password").Funcs(sprig.FuncMap()).Parse(`{{ derivePassword 1 "long" .MasterPassword .AppName .AppAccountName | sha1sum | quote }}`) if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, map[string]string{ "MasterPassword": masterPassword, "AppName": appName, "AppAccountName": appAccountName, }) if err != nil { panic(err) } os.Stdout.Sync() }