diff options
Diffstat (limited to 'cmd/web/install.go')
| -rw-r--r-- | cmd/web/install.go | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/cmd/web/install.go b/cmd/web/install.go index 63faaf6..678037a 100644 --- a/cmd/web/install.go +++ b/cmd/web/install.go @@ -1,18 +1,23 @@ package main import ( + "encoding/json" + "fmt" + "net/http" "net/url" "os" "strings" - "fmt" - "net/http" "sync" + "time" ) type statusInfo struct { - Running bool - Error error - Url string + Running bool + Error error + Url string + Transferred int64 + Size int64 + Start *time.Time } var ( @@ -27,6 +32,19 @@ var ( getPath = make(chan string) ) +func statsHandler(w http.ResponseWriter, r *http.Request) { + status.m.RLock() + defer status.m.RUnlock() + + enc := json.NewEncoder(w) + + err := enc.Encode(status.s) + if err != nil { + Logger.Println("While encoding status: ", err) + } + return +} + func installHttp(u string) error { Logger.Println("Installer: loading from url") resp, err := http.Get(u) @@ -57,6 +75,8 @@ func installPath(p string) error { return nil } +// installer handles installing games either from a local path or a +// remote URL func installer(urls <-chan string) { var err error for u := range urls { @@ -87,7 +107,6 @@ func gameInstaller(w http.ResponseWriter, r *http.Request) { return } - err := r.ParseForm() if err != nil { Logger.Printf("Installer: While parsing form: %s", err) |
