From 415c4a1a48502ae5180c48188c8f2e94d9c9d92c Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Sat, 21 Nov 2020 16:13:24 -0500 Subject: Bind to a random port of the default one is taken. Add a quit option to the GUI --- cmd/web/index.go | 2 +- cmd/web/main.go | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'cmd/web') diff --git a/cmd/web/index.go b/cmd/web/index.go index 2dfe20e..59310c0 100644 --- a/cmd/web/index.go +++ b/cmd/web/index.go @@ -21,7 +21,7 @@ var ( diff --git a/cmd/web/main.go b/cmd/web/main.go index 64321da..f5365d0 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -2,10 +2,13 @@ package main import ( "flag" + "fmt" "log" + "math/rand" "net/http" "os" "sync" + "time" "github.com/gorilla/mux" "riedstra.dev/mitch/steam-export/steam" @@ -30,6 +33,11 @@ func reloadLib() { } } +func quitHandler(w http.ResponseWriter, r *http.Request) { + Logger.Println("Quit was called, exiting") + os.Exit(0) +} + func main() { fl := flag.NewFlagSet("steam-export", flag.ExitOnError) debug := fl.Bool("d", false, "Print line numbers in log") @@ -51,6 +59,7 @@ func main() { r := mux.NewRouter() + r.HandleFunc("/quit", quitHandler) r.HandleFunc("/delete", gameDelete) r.HandleFunc("/install", gameInstaller) r.HandleFunc("/download/{game}", gameDownloader) @@ -64,5 +73,15 @@ func main() { go startBrowser() - Logger.Fatal(s.ListenAndServe()) + for i := 0; i < 5; i++ { + err = s.ListenAndServe() + if err != nil { + Logger.Printf("Encountered: %s", err) + rand.Seed(time.Now().UnixNano()) + Listen = fmt.Sprintf(":%d", rand.Intn(63000)+1024) + Logger.Printf("Trying: %s", Listen) + s.Addr = Listen + } + + } } -- cgit v1.2.3