diff .cms/lib/codemirror/bin/upload-release.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/lib/codemirror/bin/upload-release.js	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,44 @@
+"use strict"
+
+let version = process.argv[2]
+let auth = process.argv[3]
+let url = require("url")
+
+if (!auth) {
+  console.log("Usage: upload-release.js [TAG] [github-user:password]")
+  process.exit(1)
+}
+
+function post(host, path, body) {
+  let req = require("https").request({
+    host,
+    auth: auth,
+    headers: {"user-agent": "Release uploader"},
+    path,
+    method: "POST"
+  }, res => {
+    if (res.statusCode >= 300 && res.statusCode < 400) {
+      console.log(res.headers.location)
+      let parsed = url.parse(res.headers.location)
+      post(parsed.host, parsed.path, body)
+    } else if (res.statusCode >= 400) {
+      console.error(res.statusCode, res.statusMessage)
+      res.on("data", d => console.log(d.toString()))
+      res.on("end", () => process.exit(1))
+    }
+  })
+  req.write(body)
+  req.end()
+}
+
+require('child_process').exec("git --no-pager show -s --format='%s' " + version, (error, stdout) => {
+  if (error) throw error
+  let message = stdout.split("\n").slice(2)
+  message = message.slice(0, message.indexOf("-----BEGIN PGP SIGNATURE-----")).join("\n")
+
+  post("api.github.com", "/repos/codemirror/codemirror5/releases", JSON.stringify({
+    tag_name: version,
+    name: version,
+    body: message
+  }))
+})