52 lines
1.1 KiB
Go

package main
import (
"github.com/Masterminds/sprig/v3"
"os"
"text/template"
"fmt"
)
func main() {
helpText := `Usage: program <appName> <appAccountName> [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()
}