summaryrefslogtreecommitdiff
path: root/upload.sc
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-12 22:18:39 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-12 22:18:39 +0800
commitfd9c399db8c1c0d86cc65d5e1c41968b42a813d1 (patch)
tree8e8fc2875cb1c26f309384a9ca0ad72e1fa893f3 /upload.sc
parent9bf8c31fa9321558d7d02f6a5b687cd55a924e7f (diff)
downloadcask-fd9c399db8c1c0d86cc65d5e1c41968b42a813d1.tar.gz
cask-fd9c399db8c1c0d86cc65d5e1c41968b42a813d1.tar.bz2
cask-fd9c399db8c1c0d86cc65d5e1c41968b42a813d1.zip
auto-upload examples
Diffstat (limited to 'upload.sc')
-rw-r--r--upload.sc52
1 files changed, 52 insertions, 0 deletions
diff --git a/upload.sc b/upload.sc
new file mode 100644
index 0000000..6c47295
--- /dev/null
+++ b/upload.sc
@@ -0,0 +1,52 @@
+#!/usr/bin/env amm
+import ammonite.ops._
+import scalaj.http._
+
+@main
+def shorten(longUrl: String) = {
+ println("shorten longUrl " + longUrl)
+ val shortUrl = Http("https://git.io")
+ .postForm(Seq("url" -> longUrl))
+ .asString
+ .headers("Location")
+ .head
+ println("shorten shortUrl " + shortUrl)
+ shortUrl
+}
+@main
+def apply(uploadedFile: Path,
+ tagName: String,
+ uploadName: String,
+ authKey: String): String = {
+ val body = Http("https://api.github.com/repos/lihaoyi/cask/releases/tags/" + tagName)
+ .header("Authorization", "token " + authKey)
+ .asString.body
+
+ val parsed = ujson.read(body)
+
+ println(body)
+
+ val snapshotReleaseId = parsed("id").num.toInt
+
+
+ val uploadUrl =
+ s"https://uploads.github.com/repos/lihaoyi/cask/releases/" +
+ s"$snapshotReleaseId/assets?name=$uploadName"
+
+ val res = Http(uploadUrl)
+ .header("Content-Type", "application/octet-stream")
+ .header("Authorization", "token " + authKey)
+ .timeout(connTimeoutMs = 5000, readTimeoutMs = 60000)
+ .postData(read.bytes! uploadedFile)
+ .asString
+
+ println(res.body)
+ val longUrl = ujson.read(res.body)("browser_download_url").str.toString
+
+ println("Long Url " + longUrl)
+
+ val shortUrl = shorten(longUrl)
+
+ println("Short Url " + shortUrl)
+ shortUrl
+}