// Command aviso-key prints one VAPID private key, and nothing else, so // it can be captured straight into a secret store: // // APP_VAPID_PRIVATE_KEY="$(go run amadan.net/rastrillo/aviso/cmd/aviso-key)" // // The public key is derived by aviso.New; there is no second value to // keep. Run it once per app: rotating the key means every browser // re-enrols on its next visit. package main import ( "fmt" "io" "os" "amadan.net/rastrillo/aviso" ) func run(w io.Writer) error { k, err := aviso.GenerateKey() if err != nil { return err } _, err = fmt.Fprintln(w, k) return err } func main() { if err := run(os.Stdout); err != nil { fmt.Fprintln(os.Stderr, "aviso-key:", err) os.Exit(1) } }