const {execSync} = require('child_process'); const {join} = require('path'); const fs = require('fs-extra') const cwd = process.cwd(); const [exe, script, package] = process.argv; const path = join(cwd, 'packages', package); try { fs.accessSync(path); console.error(`Package '${package}' already exists, aborting.`); process.exit(1); } catch (error) {} const [scope] = require('./package.json').name.split('/'); const name = [scope, package].join('/'); console.log(`Copying new project '${name}' to ${path}...`); fs.copySync( join(cwd, 'config/package'), path, ); const json = { ...require(join(path, 'package.json')), name, }; fs.writeFileSync( join(path, 'package.json'), JSON.stringify(json, null, 2), ); const exec = (cmd) => execSync(cmd, {cwd: path, stdio: 'inherit'}); console.log(`Installing...`); exec('yarn'); console.log(`Testing...`); exec('yarn run test');