From 382abea616e5a7928fe1c12133ed1b1b8042c907 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 1 Dec 2015 18:27:09 +0100 Subject: [PATCH] add checktool endpoint and force download --- download.go | 50 ++++++++++++++++++++++++++++++-------------------- hub.go | 5 +++++ 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/download.go b/download.go index ecce08aac..f93e8affa 100644 --- a/download.go +++ b/download.go @@ -86,28 +86,38 @@ func downloadFromUrl(url string) (filename string, err error) { return fileName, nil } -func spDownloadTool(name string, url string) { +func spCheckToolVersion(name string) { + var outlist []string + dirlist, err := ioutil.ReadDir(tempToolsPath + "/") + if err == nil { + for _, element := range dirlist { + if element.IsDir() && strings.Contains(element.Name(), name) { + outlist = append(outlist, element.Name()) + } + } + } + mapD := map[string][]string{"ToolVersions": outlist} + mapB, _ := json.Marshal(mapD) + h.broadcastSys <- mapB +} - if _, err := os.Stat(tempToolsPath + "/" + name); err != nil { +func spDownloadTool(name string, url string) { - fileName, err := downloadFromUrl(url + "/" + name + "-" + runtime.GOOS + "-" + runtime.GOARCH + ".zip") - if err != nil { - log.Error("Could not download flashing tools!") - mapD := map[string]string{"DownloadStatus": "Error", "Msg": err.Error()} - mapB, _ := json.Marshal(mapD) - h.broadcastSys <- mapB - return - } - err = UnzipWrapper(fileName, tempToolsPath) - if err != nil { - log.Error("Could not unzip flashing tools!") - mapD := map[string]string{"DownloadStatus": "Error", "Msg": err.Error()} - mapB, _ := json.Marshal(mapD) - h.broadcastSys <- mapB - return - } - } else { - log.Info("Tool already present, skipping download") + fileName, err := downloadFromUrl(url + "/" + name + "-" + runtime.GOOS + "-" + runtime.GOARCH + ".zip") + if err != nil { + log.Error("Could not download flashing tools!") + mapD := map[string]string{"DownloadStatus": "Error", "Msg": err.Error()} + mapB, _ := json.Marshal(mapD) + h.broadcastSys <- mapB + return + } + err = UnzipWrapper(fileName, tempToolsPath) + if err != nil { + log.Error("Could not unzip flashing tools!") + mapD := map[string]string{"DownloadStatus": "Error", "Msg": err.Error()} + mapB, _ := json.Marshal(mapD) + h.broadcastSys <- mapB + return } folders, _ := ioutil.ReadDir(tempToolsPath) diff --git a/hub.go b/hub.go index b03ec0a75..05403b99a 100755 --- a/hub.go +++ b/hub.go @@ -189,6 +189,11 @@ func checkCmd(m []byte) { if len(args) > 2 { go spDownloadTool(args[1], args[2]) } + } else if strings.HasPrefix(sl, "checktool") { + args := strings.Split(s, " ") + if len(args) > 1 { + go spCheckToolVersion(args[1]) + } } else if strings.HasPrefix(sl, "bufferalgorithm") { go spBufferAlgorithms() } else if strings.HasPrefix(sl, "log") {