aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/web/main.go')
-rw-r--r--cmd/web/main.go21
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
+ }
+
+ }
}