Skip to content

Commit

Permalink
[generate] run yo sequential on win32
Browse files Browse the repository at this point in the history
Signed-off-by: Anton Kosiakov <anton.kosyakov@typefox.io>
  • Loading branch information
akosyakov committed Jul 21, 2017
1 parent 5d9787d commit 78ad497
Showing 1 changed file with 25 additions and 18 deletions.
43 changes: 25 additions & 18 deletions scripts/generate.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,39 @@ const fs = require('fs');
const paths = require('path');
const cp = require('child_process');

function spawn(command, args, options) {
function spawn(command, args, options, error, log) {
log(`${command} ${args.join(' ')}`);
if (process.platform !== 'win32') {
return cp.spawn(command, args, options);
const p = cp.spawn(command, args, options);
p.on('exit', code => {
if (code !== 0) {
process.exit(code)
}
});
p.on('error', err => error(err));
p.stdout.on('data', data => log(data));
p.stderr.on('data', data => error(data));
} else {
const p = cp.spawnSync('cmd', ['/c', command, ...args], options);
if (p.error) {
error(p.error);
}
if (p.output) {
log(p.output);
}
if (p.status !== 0) {
process.exit(p.status);
}
}
return cp.spawn('cmd', ['/c', command, ...args], options);
}

function generate(name, cwd, prefix, target) {
if (fs.existsSync(paths.resolve(cwd, prefix + '.package.json'))) {
const command = 'yo';
const args = ['theia:' + target, '--force'];
console.log(`${name}: ${command} ${args.join(' ')}`);
const p = spawn(command, args, { cwd, env: process.env });
p.on('exit', code => {
if (code !== 0) {
process.exit(code)
}
});
p.on('error', err =>
console.error(`${name}: ${err.message}`)
);
p.stdout.on('data', data =>
console.log(`${name}: ${data}`)
);
p.stderr.on('data', data =>
console.error(`${name}: ${data}`)
spawn(command, args, { cwd, env: process.env },
msg => console.error(`${name}: ${msg}`),
msg => console.log(`${name}: ${msg}`)
);
}
}
Expand Down

0 comments on commit 78ad497

Please sign in to comment.