electron/tools/dump-version-info.js

83 lines
1.8 KiB
JavaScript
Raw Normal View History

2016-03-25 20:03:49 +00:00
var app = require('app')
var fs = require('fs')
var path = require('path')
var request = require('request')
2015-01-21 05:53:53 +00:00
2016-03-25 20:03:49 +00:00
var TARGET_URL = 'https://atom.io/download/atom-shell/index.json'
2016-03-25 20:03:49 +00:00
function getDate () {
var today = new Date()
var year = today.getFullYear()
var month = today.getMonth() + 1
if (month <= 9)
2016-03-25 20:03:49 +00:00
month = '0' + month
var day = today.getDate()
if (day <= 9)
2016-03-25 20:03:49 +00:00
day = '0' + day
return year + '-' + month + '-' + day
}
2016-03-25 20:03:49 +00:00
function getInfoForCurrentVersion () {
var json = {}
json.version = process.versions['atom-shell']
json.date = getDate()
2015-01-21 21:37:52 +00:00
var names = ['node', 'v8', 'uv', 'zlib', 'openssl', 'modules', 'chrome']
for (var i in names) {
2016-03-25 20:03:49 +00:00
var name = names[i]
json[name] = process.versions[name]
}
json.files = [
'darwin-x64',
'darwin-x64-symbols',
'linux-ia32',
'linux-ia32-symbols',
'linux-x64',
'linux-x64-symbols',
'win32-ia32',
'win32-ia32-symbols',
2015-04-11 16:02:45 +00:00
'win32-x64',
'win32-x64-symbols',
2016-03-25 20:03:49 +00:00
]
2016-03-25 20:03:49 +00:00
return json
2015-01-21 05:53:53 +00:00
}
2016-03-25 20:03:49 +00:00
function getIndexJsInServer (callback) {
request(TARGET_URL, function (e, res, body) {
2015-01-21 05:53:53 +00:00
if (e)
2016-03-25 20:03:49 +00:00
callback(e)
2015-01-21 05:53:53 +00:00
else if (res.statusCode != 200)
2016-03-25 20:03:49 +00:00
callback(new Error('Server returned ' + res.statusCode))
2015-01-21 05:53:53 +00:00
else
2016-03-25 20:03:49 +00:00
callback(null, JSON.parse(body))
})
2015-01-21 05:53:53 +00:00
}
2016-03-25 20:03:49 +00:00
function findObjectByVersion (all, version) {
2015-01-21 05:53:53 +00:00
for (var i in all)
if (all[i].version == version)
2016-03-25 20:03:49 +00:00
return i
return -1
2015-01-21 05:53:53 +00:00
}
2016-03-25 20:03:49 +00:00
app.on('ready', function () {
getIndexJsInServer(function (e, all) {
2015-01-21 05:53:53 +00:00
if (e) {
2016-03-25 20:03:49 +00:00
console.error(e)
process.exit(1)
2015-01-21 05:53:53 +00:00
}
2016-03-25 20:03:49 +00:00
var current = getInfoForCurrentVersion()
var found = findObjectByVersion(all, current.version)
2015-01-21 05:53:53 +00:00
if (found == -1)
2016-03-25 20:03:49 +00:00
all.unshift(current)
2015-01-21 05:53:53 +00:00
else
2016-03-25 20:03:49 +00:00
all[found] = current
2015-01-21 05:53:53 +00:00
2016-03-25 20:03:49 +00:00
fs.writeFileSync(process.argv[2], JSON.stringify(all))
process.exit(0)
})
})