bootstrap
1 #!/usr/bin/env node 2 3 'use strict' 4 5 const path = require('path') 6 const CONFIG = require('./config') 7 const childProcess = require('child_process') 8 const cleanDependencies = require('./lib/clean-dependencies') 9 const deleteMsbuildFromPath = require('./lib/delete-msbuild-from-path') 10 const dependenciesFingerprint = require('./lib/dependencies-fingerprint') 11 const installApm = require('./lib/install-apm') 12 const runApmInstall = require('./lib/run-apm-install') 13 const installScriptDependencies = require('./lib/install-script-dependencies') 14 const verifyMachineRequirements = require('./lib/verify-machine-requirements') 15 16 process.on('unhandledRejection', function (e) { 17 console.error(e.stack || e) 18 process.exit(1) 19 }) 20 21 // We can't use yargs until installScriptDependencies() is executed, so... 22 let ci = process.argv.indexOf('--ci') !== -1 23 24 if (!ci && process.env.CI === 'true' && process.argv.indexOf('--no-ci') === -1) { 25 console.log('Automatically enabling --ci because CI is set in the environment') 26 ci = true 27 } 28 29 verifyMachineRequirements(ci) 30 31 if (dependenciesFingerprint.isOutdated()) { 32 cleanDependencies() 33 } 34 35 if (process.platform === 'win32') deleteMsbuildFromPath() 36 37 installScriptDependencies(ci) 38 installApm(ci) 39 childProcess.execFileSync( 40 CONFIG.getApmBinPath(), 41 ['--version'], 42 {stdio: 'inherit'} 43 ) 44 runApmInstall(CONFIG.repositoryRootPath, ci) 45 46 dependenciesFingerprint.write()