diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2020-11-21 16:13:24 -0500 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2020-11-21 16:13:24 -0500 |
| commit | 415c4a1a48502ae5180c48188c8f2e94d9c9d92c (patch) | |
| tree | 52df160df95a08b636474c6afe0672c16da6d9f3 /cmd/web | |
| parent | 2eca9c19a96aeef8f1b5deabe6dbd71fc688d566 (diff) | |
| download | steam-export-415c4a1a48502ae5180c48188c8f2e94d9c9d92c.tar.gz steam-export-415c4a1a48502ae5180c48188c8f2e94d9c9d92c.tar.xz | |
Bind to a random port of the default one is taken. Add a quit option to the GUI
Diffstat (limited to 'cmd/web')
| -rw-r--r-- | cmd/web/index.go | 2 | ||||
| -rw-r--r-- | cmd/web/main.go | 21 |
2 files changed, 21 insertions, 2 deletions
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 ( <nav> <a href="/">Home</a> <div style="display: block; float: right;"> - <!-- <a href="">Right Aligned</a> --> + <a href="/quit">Shutdown Server / Quit</a> </div> </nav> 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 + } + + } } |
