From 3a9999ce6df4c6f758d6031b2bef3fb56a4aaa62 Mon Sep 17 00:00:00 2001 From: Darko Luketic Date: Mon, 4 Nov 2019 02:30:57 +0100 Subject: [PATCH] exposed listen addr parameter --- cmd/serve.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cmd/serve.go b/cmd/serve.go index 2d131df..6e73ca4 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -16,7 +16,11 @@ limitations under the License. package cmd import ( + "fmt" + "net" "net/http" + "os" + "strings" "time" "github.com/dalu/chromedom/server" @@ -27,6 +31,7 @@ var ( binary string duration time.Duration maxmem int + addr string ) // serveCmd represents the serve command @@ -38,13 +43,15 @@ var serveCmd = &cobra.Command{ s := http.DefaultServeMux h := server.NewHandler(binary, duration, maxmem) s.Handle("/", h) - return http.ListenAndServe(":9292", s) - // return runUnix("/tmp/chromedom.sock", s) + if strings.HasPrefix(addr, "unix:") { + return runUnix(strings.TrimPrefix(addr, "unix:"), s) + } else { + fmt.Printf("Listening and serving HTTP on %s", addr) + return http.ListenAndServe(addr, s) + } }, } -/* - func runUnix(file string, engine *http.ServeMux) (err error) { fmt.Printf("Listening and serving HTTP on unix:/%s", file) os.Remove(file) @@ -53,11 +60,12 @@ func runUnix(file string, engine *http.ServeMux) (err error) { return } defer listener.Close() - os.Chmod(file, 0777) + if err := os.Chmod(file, 0777); err != nil { + return err + } err = http.Serve(listener, engine) return } -*/ func init() { rootCmd.AddCommand(serveCmd) @@ -65,4 +73,5 @@ func init() { serveCmd.Flags().StringVarP(&binary, "binary", "b", "/usr/bin/google-chrome", "chrome, chromium or headless binary path") serveCmd.Flags().DurationVarP(&duration, "duration", "d", 60*time.Minute, "how long the values live in the cache") serveCmd.Flags().IntVarP(&maxmem, "maxmem", "m", 512, "maximum memory in MB the cache may use") + serveCmd.Flags().StringVarP(&addr, "addr", "a", "localhost:9292", "ip:port pair to listen on, or prefixed with unix: the unix socket path to listen on") }