44 lines
No EOL
1.4 KiB
JavaScript
44 lines
No EOL
1.4 KiB
JavaScript
const fs = 'fs' |> require(%);
|
|
const path = 'path' |> require(%);
|
|
const child_process = 'child_process' |> require(%);
|
|
const fixtureDirs = (file => {
|
|
return (__dirname |> path.join(%, file) |> fs.statSync(%)).isDirectory();
|
|
}) |> (__dirname |> fs.readdirSync(%)).filter(%);
|
|
const cmdArgs = [{
|
|
cmd: 'yarn',
|
|
args: ['install']
|
|
}, {
|
|
cmd: 'yarn',
|
|
args: ['build']
|
|
}];
|
|
function buildFixture(cmdArg, path) {
|
|
const opts = {
|
|
cwd: path,
|
|
stdio: 'inherit'
|
|
};
|
|
const result = child_process.spawnSync(cmdArg.cmd, cmdArg.args, opts);
|
|
if (result.status !== 0) {
|
|
throw new Error(`Failed to build fixtures!`);
|
|
}
|
|
}
|
|
(dir => {
|
|
(cmdArg => {
|
|
// we only care about directories that have DEV and PROD directories in
|
|
// otherwise they don't need to be built
|
|
const devPath = path.join(__dirname, dir, 'dev');
|
|
if (devPath |> fs.existsSync(%)) {
|
|
cmdArg |> buildFixture(%, devPath);
|
|
}
|
|
const prodPath = path.join(__dirname, dir, 'prod');
|
|
if (prodPath |> fs.existsSync(%)) {
|
|
cmdArg |> buildFixture(%, prodPath);
|
|
}
|
|
}) |> cmdArgs.forEach(%);
|
|
}) |> fixtureDirs.forEach(%);
|
|
'-------------------------' |> console.log(%);
|
|
'All fixtures were built!' |> console.log(%);
|
|
'Now ensure all frames display a welcome message:' |> console.log(%);
|
|
' npm install -g serve' |> console.log(%);
|
|
' serve ../..' |> console.log(%);
|
|
' open http://localhost:5000/fixtures/packaging/' |> console.log(%);
|
|
'-------------------------' |> console.log(%); |