function runCommand(item, cwd, callback) { var chunks = item.split(/\s+/g); var command = chunks[0]; var args = chunks.slice(1); var stdout = []; var options = { cwd: cwd }; var cmd = edp.util.spawn(command, args, options); var errorHappend = false; cmd.on('error', function() { errorHappend = true; callback(new Error(item + ' launch failed.')); }); cmd.stdout.on('data', function(data) { stdout.push(data); }); cmd.on('close', function(code) { if (errorHappend || code !== 0) { callback(new Error('' + code)); return; } callback(null, Buffer.concat(stdout).toString().trim()); }); }
function runCommand(item, callback) { var chunks = item.split(/\s+/g); var command = chunks[0]; var args = chunks.slice(1); var stdout = []; var cmd = edp.util.spawn(command, args); var errorHappend = false; cmd.on('error', function(){ errorHappend = true; callback(false); }); cmd.stdout.on('data', function(data){ stdout.push(data); }); cmd.on('close', function(code){ if (errorHappend) { return; } if (code !== 0) { callback(false); return; } stdout = Buffer.concat(stdout); var data = require('querystring').encode({ 'title': 'project info pingback', 'file_name': 'info.txt', 'code': stdout.toString() }); // HTTP/1.1 201 Created var options = require('url').parse('http://git.baidu.com/api/v3/projects/1929/snippets'); options.method = 'POST'; options.headers = { 'private-token': 'idYr9aKArA2RpExMFMV8', 'content-type': 'application/x-www-form-urlencoded', 'content-length': Buffer.byteLength(data), 'connection': 'close' }; var req = http.request(options, function(res){ callback(res.statusCode === 201); }); req.on('socket', function (socket) { socket.setTimeout(2000); socket.on('timeout', function(){ req.abort(); }); }); req.on('error', function() { callback(false); }); req.write(data); req.end(); }); }
/** * 导入package成功之后,更新项目的配置信息 * 采用的方式是执行 edp project updateLoaderConfig * 这样子就可以避免edp-package对edp-project的依赖了 */ function refreshProjectConfiguration( err ) { if ( err ) { throw err; } // 把TemporaryImportDir/dep目录下面的内容拷贝过来 var from = path.join( kTemporaryImportDir, 'dep' ); var to = path.join( process.cwd(), 'dep' ); require( '../lib/util/copy-dir' )( from, to ); var cmd = edp.util.spawn( 'edp', [ 'project', 'updateLoaderConfig' ], { stdio: 'inherit' } ); cmd.on( 'close', function( code ){ // 删除ImportDir edp.util.rmdir( kTemporaryImportDir ); }); }
context.checkLocalModifications(function(error, diffs) { diffs.forEach(function(line) { edp.log.warn(line); }); var cmd = edp.util.spawn( 'edp', [ 'project', 'updateLoaderConfig' ], { stdio: 'inherit' } ); cmd.on('error', function(error) { console.log(error); }); cmd.on('close', function(code) { edp.util.rmdir(context.getShadowDir()); edp.log.info('Impossible Mission Completed.'); callback(code === 0 ? null : code); }); });
return function ( err, packData ) { if ( err ) { console.log( err ); return; } var fsExt = require( './fs-copy' ); var projectDep = require( './get-dependencies-dir' )( process.cwd() ); var path = require( 'path' ); var fs = require( 'fs' ); function rmTemp() { var temp = path.join( depDir, '..' ); fsExt.rmdir( temp ); } if ( !fs.existsSync(depDir) ) { rmTemp(); return; } fsExt.copyDir(depDir, projectDep); var updateProcess = edp.util.spawn( 'edp', [ 'project', 'updateLoaderConfig' ] ); updateProcess.on( 'close', rmTemp ); };