38 lines
893 B
JavaScript
38 lines
893 B
JavaScript
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');
|