|
2 | 2 |
|
3 | 3 | require('./lib/node/index.js') |
4 | 4 |
|
| 5 | +const cp = require('child_process') |
5 | 6 | const fs = require('fs') |
6 | 7 | const npmlog = require('npmlog') |
7 | 8 | const path = require('path') |
8 | 9 | const util = require('util') |
| 10 | +const yargs = require('yargs') |
9 | 11 |
|
10 | 12 | const readFileAsync = util.promisify(fs.readFile) |
11 | 13 |
|
12 | 14 | if (require.main === module) { |
13 | 15 | main() |
14 | 16 | } |
15 | 17 | module.exports = main |
16 | | -async function main () { |
17 | | - const startTime = Date.now() |
| 18 | +function main () { |
18 | 19 | npmlog.heading = 'frog' |
19 | | - let pkgMap = await checkPkgMap() |
| 20 | + let pkgMap = checkPkgMap() |
20 | 21 | if (!pkgMap) { |
21 | | - const config = await require('./lib/config.js').fromNpm(process.argv) |
22 | | - npmlog.level = config.loglevel |
23 | | - pkgMap = (await require('./lib/installer.js')(config.concat({ |
24 | | - log (level, ...args) { return npmlog[level](...args) } |
25 | | - }))).pkgMap |
| 22 | + cp.spawnSync(process.argv[0], [ |
| 23 | + require.resolve('./lib/worker.js'), ...process.argv.slice(2) |
| 24 | + ], { |
| 25 | + stdio: 'inherit' |
| 26 | + }) |
26 | 27 | } |
27 | | - npmlog.info('package-map', 'package map loaded in', `${(Date.now() - startTime) / 1000}s`) |
28 | | - npmlog.notice('exec', 'executing `main` using frogged dependencies (TODO)') |
29 | | - npmlog.notice('exec', 'dep lockfile integrity:', pkgMap.lockfile_integrity) |
| 28 | + const nodeArgs = [...([].concat(yargs.argv.nodeArg || [])), ...yargs.argv._] |
| 29 | + cp.spawnSync( |
| 30 | + process.argv[0], |
| 31 | + ['-r', require.resolve('./lib/node'), ...nodeArgs], |
| 32 | + {stdio: 'inherit'} |
| 33 | + ) |
30 | 34 | } |
31 | 35 |
|
32 | | -async function checkPkgMap () { |
| 36 | +function checkPkgMap () { |
33 | 37 | try { |
34 | 38 | const base = process.cwd() |
35 | | - const lock = JSON.parse(stripBOM(await readFileAsync(path.join(base, 'package-lock.json'), 'utf8'))) |
36 | | - const map = JSON.parse(stripBOM(await readFileAsync(path.join(base, 'node_modules', '.package-map.json'), 'utf8'))) |
| 39 | + const lock = JSON.parse(stripBOM(readFileAsync(path.join(base, 'package-lock.json'), 'utf8'))) |
| 40 | + const map = JSON.parse(stripBOM(readFileAsync(path.join(base, 'node_modules', '.package-map.json'), 'utf8'))) |
37 | 41 | require('ssri').checkData( |
38 | 42 | JSON.stringify(lock), map.lockfile_integrity, {error: true} |
39 | 43 | ) |
|
0 commit comments