diff options
Diffstat (limited to 'client/node_modules/electron/install.js')
-rw-r--r-- | client/node_modules/electron/install.js | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/client/node_modules/electron/install.js b/client/node_modules/electron/install.js deleted file mode 100644 index 8fb438e..0000000 --- a/client/node_modules/electron/install.js +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env node - -const { version } = require('./package'); - -const childProcess = require('child_process'); -const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const extract = require('extract-zip'); -const { downloadArtifact } = require('@electron/get'); - -if (process.env.ELECTRON_SKIP_BINARY_DOWNLOAD) { - process.exit(0); -} - -const platformPath = getPlatformPath(); - -if (isInstalled()) { - process.exit(0); -} - -const platform = process.env.npm_config_platform || process.platform; -let arch = process.env.npm_config_arch || process.arch; - -if (platform === 'darwin' && process.platform === 'darwin' && arch === 'x64' && - process.env.npm_config_arch === undefined) { - // When downloading for macOS ON macOS and we think we need x64 we should - // check if we're running under rosetta and download the arm64 version if appropriate - try { - const output = childProcess.execSync('sysctl -in sysctl.proc_translated'); - if (output.toString().trim() === '1') { - arch = 'arm64'; - } - } catch { - // Ignore failure - } -} - -// downloads if not cached -downloadArtifact({ - version, - artifactName: 'electron', - force: process.env.force_no_cache === 'true', - cacheRoot: process.env.electron_config_cache, - checksums: process.env.electron_use_remote_checksums ? undefined : require('./checksums.json'), - platform, - arch -}).then(extractFile).catch(err => { - console.error(err.stack); - process.exit(1); -}); - -function isInstalled () { - try { - if (fs.readFileSync(path.join(__dirname, 'dist', 'version'), 'utf-8').replace(/^v/, '') !== version) { - return false; - } - - if (fs.readFileSync(path.join(__dirname, 'path.txt'), 'utf-8') !== platformPath) { - return false; - } - } catch (ignored) { - return false; - } - - const electronPath = process.env.ELECTRON_OVERRIDE_DIST_PATH || path.join(__dirname, 'dist', platformPath); - - return fs.existsSync(electronPath); -} - -// unzips and makes path.txt point at the correct executable -function extractFile (zipPath) { - const distPath = process.env.ELECTRON_OVERRIDE_DIST_PATH || path.join(__dirname, 'dist'); - - return extract(zipPath, { dir: path.join(__dirname, 'dist') }).then(() => { - // If the zip contains an "electron.d.ts" file, - // move that up - const srcTypeDefPath = path.join(distPath, 'electron.d.ts'); - const targetTypeDefPath = path.join(__dirname, 'electron.d.ts'); - const hasTypeDefinitions = fs.existsSync(srcTypeDefPath); - - if (hasTypeDefinitions) { - fs.renameSync(srcTypeDefPath, targetTypeDefPath); - } - - // Write a "path.txt" file. - return fs.promises.writeFile(path.join(__dirname, 'path.txt'), platformPath); - }); -} - -function getPlatformPath () { - const platform = process.env.npm_config_platform || os.platform(); - - switch (platform) { - case 'mas': - case 'darwin': - return 'Electron.app/Contents/MacOS/Electron'; - case 'freebsd': - case 'openbsd': - case 'linux': - return 'electron'; - case 'win32': - return 'electron.exe'; - default: - throw new Error('Electron builds are not available on platform: ' + platform); - } -} |