From 0a25e1a89cb906e683d5e697758e3be3d8d73ec0 Mon Sep 17 00:00:00 2001 From: David Ashby Date: Wed, 16 Sep 2020 16:45:36 -0400 Subject: [PATCH] add command-line flag options --- main.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 972bc44..87c8e1f 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "bufio" "crypto/tls" + "flag" "mime" "net" "net/url" @@ -28,6 +29,11 @@ func handleConnection(log logger.Logger, conn net.Conn, h handlers.Handler) { } func main() { + hostname := flag.String("hostname", "localhost", "comma-separated list of hostnames to generate certificates for") + regenCerts := flag.Bool("regenerate-certs", false, "set to true to regenerate cert files") + serveFrom := flag.String("path", "./root/", "filepath to serve files from; defaults to ./root/") + flag.Parse() + log := logger.NewLogger(true) mime.AddExtensionType(".gemini", "text/gemini") @@ -35,9 +41,9 @@ func main() { err := certificates.TestCertificateExists("./certs/cert.pem", "./certs/key.pem") var cer tls.Certificate - if err != nil { + if err != nil || *regenCerts { log.Info("Generating new certificate...") - key, cert, err := certificates.GenerateKeyPair("localhost") + key, cert, err := certificates.GenerateKeyPair(*hostname) if err != nil { log.Info("error generating certificates", err) return @@ -73,6 +79,6 @@ func main() { continue } - go handleConnection(log, conn, handlers.NewFileHandler("./root/")) + go handleConnection(log, conn, handlers.NewFileHandler(*serveFrom)) } }