forked from enviPath/enviPy
31 lines
800 B
JavaScript
31 lines
800 B
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
var spawn = require('child_process').spawn;
|
|
var execSync = require('child_process').execSync;
|
|
var cwd = process.env.PWD || process.cwd();
|
|
|
|
var path = require('path');
|
|
var hookName = process.argv[1].split(path.sep).pop();
|
|
var restArgs = process.argv.slice(2).join('\u263a');
|
|
|
|
process.env.HOOK_ARGS = restArgs;
|
|
|
|
var gulp = (process.platform === 'win32' ? 'gulp.cmd' : 'gulp');
|
|
var dir = execSync('npm bin gulp').toString().trim();
|
|
|
|
var hook = spawn(path.join(dir, gulp), [hookName], {
|
|
stdio: 'inherit',
|
|
cwd: cwd
|
|
});
|
|
|
|
hook.on('close', function (code) {
|
|
process.exit(code);
|
|
});
|
|
|
|
// catch exceptions so node doesn't exit prematurely, leaving a runaway process
|
|
process.on('uncaughtException', function (err) {
|
|
console.error(err.stack);
|
|
hook.kill('SIGHUP');
|
|
});
|