mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 15:37:46 +03:00
Convert script/upload-release to CoffeeScript
This commit is contained in:
parent
11f8eba2c3
commit
4705e382bf
@ -33,7 +33,7 @@ cp.safeExec.bind(global, 'node script/bootstrap', function(error) {
|
||||
require('rimraf').bind(global, path.join(homeDir, '.atom')),
|
||||
cp.safeExec.bind(global, 'git clean -dff'),
|
||||
cp.safeExec.bind(global, 'node node_modules/grunt-cli/bin/grunt ci --stack --no-color'),
|
||||
cp.safeExec.bind(global, 'node script/upload-release')
|
||||
cp.safeExec.bind(global, 'node_modules/.bin/coffee script/upload-release')
|
||||
], function(error) {
|
||||
process.exit(error ? 1 : 0);
|
||||
});
|
||||
|
@ -1,80 +1,60 @@
|
||||
#!/usr/bin/env node
|
||||
#!/usr/bin/env coffee
|
||||
|
||||
console.log(process.env);
|
||||
if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'ks-upload-release'
|
||||
return
|
||||
|
||||
return
|
||||
child_process = require 'child_process'
|
||||
fs = require 'fs'
|
||||
path = require 'path'
|
||||
|
||||
var child_process = require('child_process');
|
||||
var fs = require('fs');
|
||||
var path = require ('path');
|
||||
GitHub = require 'github-releases'
|
||||
request = require 'request'
|
||||
|
||||
var GitHub = require('github-releases');
|
||||
var request = require('request');
|
||||
assetPath = '/tmp/atom-build/atom-mac-prerelease.zip'
|
||||
token = process.env.ATOM_ACCESS_TOKEN
|
||||
|
||||
var assetPath = '/tmp/atom-build/atom-mac-prerelease.zip';
|
||||
var token = process.env.ATOM_ACCESS_TOKEN;
|
||||
zipApp = (callback) ->
|
||||
fs.unlinkSync(assetPath) if fs.existsSync(assetPath)
|
||||
|
||||
var zipApp = function(callback) {
|
||||
if (fs.existsSync(assetPath))
|
||||
fs.unlinkSync(assetPath)
|
||||
options = {cwd: path.dirname(assetPath), maxBuffer: Infinity}
|
||||
child_process.exec 'zip -r --symlinks atom-mac.zip Atom.app', options, (error, stdout, stderr) ->
|
||||
if error?
|
||||
console.error('Zipping Atom.app failed', error, stderr)
|
||||
process.exit(1)
|
||||
else
|
||||
callback()
|
||||
|
||||
var options = {
|
||||
cwd: path.dirname(assetPath),
|
||||
maxBuffer: Infinity
|
||||
};
|
||||
child_process.exec('zip -r --symlinks atom-mac.zip Atom.app', options, function(error, stdout, stderr) {
|
||||
if (error) {
|
||||
console.error('Zipping Atom.app failed', error, stderr);
|
||||
process.exit(1);
|
||||
} else
|
||||
callback();
|
||||
});
|
||||
};
|
||||
getDraftRelease = (callback) ->
|
||||
github = new GitHub({repo: 'atom/atom', token: token})
|
||||
github.getReleases (error, releases=[]) ->
|
||||
if error?
|
||||
console.error('Fetching releases failed', error.message, error.stack)
|
||||
process.exit(1)
|
||||
|
||||
var getDraftRelease = function(callback) {
|
||||
var github = new GitHub({repo: 'atom/atom', token: token});
|
||||
github.getReleases(function(error, releases) {
|
||||
if (error) {
|
||||
console.error('Fetching releases failed', error.message, error.stack);
|
||||
process.exit(1);
|
||||
}
|
||||
if releases.length is 0
|
||||
console.error('No releases found in atom/atom repo')
|
||||
process.exit(1)
|
||||
|
||||
if (!releases || releases.length === 0) {
|
||||
console.error('No releases found in atom/atom repo');
|
||||
process.exit(1);
|
||||
}
|
||||
for release in releases when release.draft
|
||||
callback(release)
|
||||
return
|
||||
|
||||
var release = null;
|
||||
for (var i = 0; i < releases.length; i++) {
|
||||
release = releases[i];
|
||||
if (release.draft) {
|
||||
callback(release);
|
||||
return;
|
||||
}
|
||||
}
|
||||
console.error('No draft release found in atom/atom repo')
|
||||
process.exit(1)
|
||||
|
||||
console.error('No draft release found in atom/atom repo');
|
||||
process.exit(1);
|
||||
})
|
||||
};
|
||||
|
||||
var uploadAsset = function() {
|
||||
getDraftRelease(function(release) {
|
||||
var options = {
|
||||
uri: "https://uploads.github.com/repos/atom/atom/releases/" + release.id + "/assets?name=" + path.basename(assetPath),
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: 'token ' + token,
|
||||
'Content-Type': 'application/zip',
|
||||
uploadAsset = ->
|
||||
getDraftRelease (release) ->
|
||||
options =
|
||||
uri: "https://uploads.github.com/repos/atom/atom/releases/#{release.id}/assets?name=#{path.basename(assetPath)}"
|
||||
method: 'POST'
|
||||
headers:
|
||||
Authorization: "token #{token}"
|
||||
'Content-Type': 'application/zip'
|
||||
'Content-Length': fs.statSync(assetPath).size
|
||||
}
|
||||
};
|
||||
var upload = request(options, function(error, response, body) {
|
||||
if (error || response.statusCode >= 400)
|
||||
console.error('Upload release asset failed', error, body);
|
||||
});
|
||||
fs.createReadStream(assetPath).pipe(upload);
|
||||
});
|
||||
}
|
||||
|
||||
zipApp(uploadAsset);
|
||||
upload = request options, (error, response, body) ->
|
||||
if error or response.statusCode >= 400
|
||||
console.error('Upload release asset failed', error, body)
|
||||
fs.createReadStream(assetPath).pipe(upload)
|
||||
|
||||
zipApp(uploadAsset)
|
||||
|
Loading…
Reference in New Issue
Block a user