annotate .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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 "use strict"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 let version = process.argv[2]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 let auth = process.argv[3]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 let url = require("url")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 if (!auth) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 console.log("Usage: upload-release.js [TAG] [github-user:password]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 process.exit(1)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 function post(host, path, body) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 let req = require("https").request({
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 host,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 auth: auth,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 headers: {"user-agent": "Release uploader"},
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 path,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 method: "POST"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 }, res => {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 if (res.statusCode >= 300 && res.statusCode < 400) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 console.log(res.headers.location)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 let parsed = url.parse(res.headers.location)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 post(parsed.host, parsed.path, body)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 } else if (res.statusCode >= 400) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 console.error(res.statusCode, res.statusMessage)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 res.on("data", d => console.log(d.toString()))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 res.on("end", () => process.exit(1))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 })
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 req.write(body)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 req.end()
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 require('child_process').exec("git --no-pager show -s --format='%s' " + version, (error, stdout) => {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 if (error) throw error
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 let message = stdout.split("\n").slice(2)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 message = message.slice(0, message.indexOf("-----BEGIN PGP SIGNATURE-----")).join("\n")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 post("api.github.com", "/repos/codemirror/codemirror5/releases", JSON.stringify({
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 tag_name: version,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 name: version,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 body: message
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 }))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 })