diff options
Diffstat (limited to 'cmd/web/main.go')
| -rw-r--r-- | cmd/web/main.go | 21 |
1 files changed, 20 insertions, 1 deletions
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 + } + + } } |
