aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2020-11-21 16:13:24 -0500
committerMitch Riedstra <mitch@riedstra.us>2020-11-21 16:13:24 -0500
commit415c4a1a48502ae5180c48188c8f2e94d9c9d92c (patch)
tree52df160df95a08b636474c6afe0672c16da6d9f3 /cmd
parent2eca9c19a96aeef8f1b5deabe6dbd71fc688d566 (diff)
downloadsteam-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')
-rw-r--r--cmd/web/index.go2
-rw-r--r--cmd/web/main.go21
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
+ }
+
+ }
}