From 00b3da058d5fe3d871cfa1ac3e819fe10e676743 Mon Sep 17 00:00:00 2001 From: Bartlomiej Obecny Date: Tue, 5 Dec 2017 15:19:48 +0100 Subject: [PATCH] adding environment variable to be check to prevent electron from installing (#4) --- .gitignore | 29 ++++++++++++++++++++++ cli.js | 12 ++++----- index.js | 10 ++++---- install.js | 72 +++++++++++++++++++++++++++++++----------------------- 4 files changed, 81 insertions(+), 42 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f36f15 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# IntelliJ project files +.idea +*.iml +out +gen### Node template +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +.DS_Store +temp/ +/build/ +build \ No newline at end of file diff --git a/cli.js b/cli.js index bfe2c11..33d2a8e 100644 --- a/cli.js +++ b/cli.js @@ -1,10 +1,10 @@ #!/usr/bin/env node -var electron = require('./') +var electron = require("./"); -var proc = require('child_process') +var proc = require("child_process"); -var child = proc.spawn(electron, process.argv.slice(2), {stdio: 'inherit'}) -child.on('close', function (code) { - process.exit(code) -}) +var child = proc.spawn(electron, process.argv.slice(2), {stdio: "inherit"}); +child.on("close", function (code) { + process.exit(code); +}); diff --git a/index.js b/index.js index eb480b9..a2b38e0 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,10 @@ -var fs = require('fs') -var path = require('path') +var fs = require("fs"); +var path = require("path"); -var pathFile = path.join(__dirname, 'path.txt') +var pathFile = path.join(__dirname, "path.txt"); if (fs.existsSync(pathFile)) { - module.exports = path.join(__dirname, fs.readFileSync(pathFile, 'utf-8')) + module.exports = path.join(__dirname, fs.readFileSync(pathFile, "utf-8")); } else { - throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again') + throw new Error("Electron failed to install correctly, please delete node_modules/electron and try installing again"); } diff --git a/install.js b/install.js index b52e88e..08de60d 100644 --- a/install.js +++ b/install.js @@ -1,65 +1,75 @@ #!/usr/bin/env node // maintainer note - x.y.z-ab version in package.json -> x.y.z -var version = require('./package').version +var version = require("./package").version; -var fs = require('fs') -var os = require('os') -var path = require('path') -var extract = require('extract-zip') -var download = require('electron-download') +var fs = require("fs"); +var os = require("os"); +var path = require("path"); +var extract = require("extract-zip"); +var download = require("electron-download"); -var installedVersion = null +var installedVersion = null; try { - installedVersion = fs.readFileSync(path.join(__dirname, 'dist', 'version'), 'utf-8').replace(/^v/, '') + installedVersion = fs.readFileSync(path.join(__dirname, "dist", "version"), "utf-8").replace(/^v/, ""); } catch (ignored) { // do nothing } -var platformPath = getPlatformPath() +if (process.env.DONT_INSTALL_ELECTRON == "1") { + process.exit(0); +} + +var platformPath = getPlatformPath(); if (installedVersion === version && fs.existsSync(path.join(__dirname, platformPath))) { - process.exit(0) + process.exit(0); } // downloads if not cached download({ - mirror: 'https://github.com/castlabs/electron-releases/releases/download/v', + mirror: "https://github.com/castlabs/electron-releases/releases/download/v", cache: process.env.electron_config_cache, version: version, platform: process.env.npm_config_platform, arch: process.env.npm_config_arch, - strictSSL: process.env.npm_config_strict_ssl === 'true', - force: process.env.force_no_cache === 'true', - quiet: ['info', 'verbose', 'silly', 'http'].indexOf(process.env.npm_config_loglevel) === -1 -}, extractFile) + strictSSL: process.env.npm_config_strict_ssl === "true", + force: process.env.force_no_cache === "true", + quiet: ["info", "verbose", "silly", "http"].indexOf(process.env.npm_config_loglevel) === -1 +}, extractFile); // unzips and makes path.txt point at the correct executable function extractFile (err, zipPath) { - if (err) return onerror(err) - extract(zipPath, {dir: path.join(__dirname, 'dist')}, function (err) { - if (err) return onerror(err) - fs.writeFile(path.join(__dirname, 'path.txt'), platformPath, function (err) { - if (err) return onerror(err) - }) - }) + if (err) { + return onerror(err); + } + extract(zipPath, {dir: path.join(__dirname, "dist")}, function (err) { + if (err) { + return onerror(err); + } + fs.writeFile(path.join(__dirname, "path.txt"), platformPath, function (err) { + if (err) { + return onerror(err); + } + }); + }); } function onerror (err) { - throw err + throw err; } function getPlatformPath () { - var platform = process.env.npm_config_platform || os.platform() + var platform = process.env.npm_config_platform || os.platform(); switch (platform) { - case 'darwin': - return 'dist/Electron.app/Contents/MacOS/Electron' - case 'freebsd': - case 'linux': - return 'dist/electron' - case 'win32': - return 'dist/electron.exe' + case "darwin": + return "dist/Electron.app/Contents/MacOS/Electron"; + case "freebsd": + case "linux": + return "dist/electron"; + case "win32": + return "dist/electron.exe"; default: throw new Error('Electron builds are not available on platform: ' + platform) }