]> git.lizzy.rs Git - micro.git/commitdiff
Edit nightly release instead of replacing
authorZachary Yedidia <zyedidia@gmail.com>
Wed, 17 Jun 2020 00:33:59 +0000 (20:33 -0400)
committerZachary Yedidia <zyedidia@gmail.com>
Wed, 17 Jun 2020 00:33:59 +0000 (20:33 -0400)
tools/nightly-release.sh
tools/remove-nightly-assets.go [new file with mode: 0644]

index 33fe1a5d87fc4afc27b7d0303c0f21552c6a2ff8..3a22c245f3eff168831603cbe6a422b51daacd25 100755 (executable)
@@ -9,8 +9,7 @@ if [[ $info = *$commitID* ]]; then
     exit 1
 fi
 
-echo "Deleting old release"
-hub release delete nightly
+go run remove-nightly-assets.go
 
 echo "Moving tag"
 hub push origin :refs/tags/nightly
@@ -21,10 +20,12 @@ echo "Cross compiling binaries"
 ./cross-compile.sh $1
 mv ../binaries .
 
+MESSAGE=$'Nightly build\n\nAutogenerated nightly build of micro'
+
 echo "Creating new release"
-hub release create nightly \
+hub release edit nightly \
     --prerelease \
-    --message $'Nightly build\n\nAutogenerated nightly build of micro.' \
+    --message "$MESSAGE. Assets uploaded on $(date)" \
     --attach "binaries/micro-$1-osx.tar.gz" \
     --attach "binaries/micro-$1-linux64.tar.gz" \
     --attach "binaries/micro-$1-linux64-static.tar.gz" \
diff --git a/tools/remove-nightly-assets.go b/tools/remove-nightly-assets.go
new file mode 100644 (file)
index 0000000..0d7fb48
--- /dev/null
@@ -0,0 +1,39 @@
+package main
+
+import (
+       "fmt"
+       "io/ioutil"
+       "net/http"
+       "os/exec"
+       "strings"
+
+       "github.com/zyedidia/json5"
+)
+
+func main() {
+       resp, err := http.Get("https://api.github.com/repos/zyedidia/micro/releases")
+       if err != nil {
+               fmt.Println(err.Error())
+               return
+       }
+       defer resp.Body.Close()
+       body, err := ioutil.ReadAll(resp.Body)
+
+       var data interface{}
+
+       err = json5.Unmarshal(body, &data)
+
+       for _, val := range data.([]interface{}) {
+               m := val.(map[string]interface{})
+               releaseName := m["name"].(string)
+               assets := m["assets"].([]interface{})
+               for _, asset := range assets {
+                       assetInfo := asset.(map[string]interface{})
+                       url := assetInfo["url"].(string)
+                       if strings.Contains(strings.ToLower(releaseName), "nightly") {
+                               cmd := exec.Command("hub", "api", "-X", "DELETE", url)
+                               cmd.Run()
+                       }
+               }
+       }
+}