From 3e1b39031437eaf48c5c6ea895dd632b1249b0a2 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Sat, 21 Nov 2020 16:44:48 -0500 Subject: Allow the library to be changed. Fix up quit handler. Improve logging --- cmd/web/main.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'cmd/web/main.go') diff --git a/cmd/web/main.go b/cmd/web/main.go index f5365d0..6bf0a5d 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -23,19 +23,41 @@ var ( ) func reloadLib() { + Logger.Println("Starting library reload") libMu.Lock() defer libMu.Unlock() var err error - Lib, err = steam.NewLibrary(DefaultLib) + l2, err := steam.NewLibrary(DefaultLib) if err != nil { Logger.Printf("Error reopening library: %s", err) return } + Lib = l2 + Logger.Println("Done reloading library") +} + +func setLibHandler(w http.ResponseWriter, r *http.Request) { + err := r.ParseForm() + if err != nil { + Logger.Printf("Setlib: While parsing form: %s", err) + http.Error(w, fmt.Sprintf("Invalid form: %s", err), 400) + return + } + + DefaultLib = r.Form.Get("path") + reloadLib() + http.Redirect(w, r, "/", 302) } func quitHandler(w http.ResponseWriter, r *http.Request) { Logger.Println("Quit was called, exiting") - os.Exit(0) + w.Header().Add("Content-type", "text/plain") + w.Write([]byte("Shutting down...")) + go func() { + time.Sleep(time.Second*2) + os.Exit(0) + }() + return } func main() { @@ -60,6 +82,7 @@ func main() { r := mux.NewRouter() r.HandleFunc("/quit", quitHandler) + r.HandleFunc("/setLib", setLibHandler) r.HandleFunc("/delete", gameDelete) r.HandleFunc("/install", gameInstaller) r.HandleFunc("/download/{game}", gameDownloader) -- cgit v1.2.3