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