| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- (function() {
- var REPO_URL, downloadFileToLocation, fs, getPathOfMksnapshot, path, request, unzipFile;
- fs = require('fs-extra');
- path = require('path');
- request = require('request');
- REPO_URL = 'https://github.com/electron/electron';
- downloadFileToLocation = function(url, filename, callback) {
- var requestStream, stream;
- stream = fs.createWriteStream(filename);
- stream.on('close', callback);
- stream.on('error', callback);
- requestStream = request.get(url);
- requestStream.on('error', callback);
- return requestStream.on('response', function(response) {
- if (response.statusCode === 200) {
- return requestStream.pipe(stream);
- } else {
- return callback(new Error("Server responded " + response.statusCode));
- }
- });
- };
- unzipFile = function(zipPath, callback) {
- var DecompressZip, unzipper;
- DecompressZip = require('decompress-zip');
- unzipper = new DecompressZip(zipPath);
- unzipper.on('error', callback);
- unzipper.on('extract', function() {
- return callback(null);
- });
- return unzipper.extract({
- path: path.dirname(zipPath)
- });
- };
- getPathOfMksnapshot = function(version, arch, builddir, callback) {
- var mksnapshot, versionFile;
- mksnapshot = path.resolve(builddir, 'mksnapshot');
- if (process.platform === 'win32') {
- mksnapshot += '.exe';
- }
- versionFile = path.join(builddir, '.mksnapshot_version');
- return fs.readFile(versionFile, function(error, currentVersion) {
- if (!error && String(currentVersion).trim() === version) {
- return callback(null, mksnapshot);
- }
- return fs.mkdirp(builddir, function(error) {
- var filename, target, url;
- if (error) {
- return callback(error);
- }
- filename = "mksnapshot-v" + version + "-" + process.platform + "-" + arch + ".zip";
- url = "" + REPO_URL + "/releases/download/v" + version + "/" + filename;
- target = path.join(builddir, filename);
- return downloadFileToLocation(url, target, function(error) {
- if (error) {
- return callback(error);
- }
- return unzipFile(target, function(error) {
- if (error) {
- return callback(error);
- }
- try {
- if (process.platform !== 'win32') {
- fs.chmodSync(mksnapshot, '755');
- }
- fs.writeFileSync(versionFile, version);
- } catch (_error) {
- error = _error;
- return callback(error);
- }
- return callback(null, mksnapshot);
- });
- });
- });
- });
- };
- module.exports = getPathOfMksnapshot;
- }).call(this);
|