const os = require('os'); const path = require('path'); const child_process = require('child_process'); const root = path.resolve(__dirname, '..'); const args = process.argv.slice(2); const options = { cwd: process.cwd(), env: process.env, stdio: 'inherit', encoding: 'utf-8', }; if (os.type() === 'Windows_NT') { options.shell = true } let result; if (process.cwd() !== root || args.length) { // We're not in the root of the project, or additional arguments were passed // In this case, forward the command to `yarn` result = child_process.spawnSync('yarn', args, options); } else { // If `yarn` is run without arguments, perform bootstrap result = child_process.spawnSync('yarn', ['bootstrap'], options); } process.exitCode = result.status;