UNPKG

pomy

Version:

Based on the concept of a project object model (POM), POMY can manage a project's build, reporting and documentation from a central piece of information.

334 lines (279 loc) 6.54 kB
'use strict'; var gulp = require('gulp'), fs = require('fs'), util = require('util'), path = require('path'), gutil = require('gulp-util'), jeditor = require("gulp-json-editor"), // bower = require('gulp-bower'), spawn = require('child_process').spawn; gulp.task('dependancy:npmunpomy', function() { var settings = util._extend({}, global.settings); var root = global.getRootPath(); delete settings.dependencies.pomy; return gulp.src([root + "package.json"]) .pipe(jeditor({ dependencies: settings.dependencies })) .pipe(gulp.dest(root)); }); gulp.task('dependancy:npm', ['dependancy:npmunpomy'], function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); args.push("npm"); } else { command = "npm"; } var mode = gutil.env.mode || (global.settings.env && global.settings.env.mode); if (mode == 'install') { args.push('install'); } else { args.push('update'); } var registry = gutil.env.registry || global.settings.registry; if (registry) { args.push("--registry"); args.push(registry); } args.push("--production"); var root = global.getRootPath(); var npm = spawn(command, args, { cwd: path.resolve(root), stdio: 'inherit' }); npm.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('dependancy:bower', function(cb) { var pomy = global.getPomyPath(); var directory = pomy + 'bower_components'; if (!fs.existsSync(directory)) { fs.mkdirSync(directory); } // return bower({ // cmd: 'update', // cwd: pomy // }); var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); // args.push("node"); } else { command = "node"; } args.push(global.getCommandPath('bower')); var mode = gutil.env.mode || (global.settings.env && global.settings.env.mode); if (mode == 'install') { args.push('install'); } else { args.push('update'); } args.push('--allow-root'); var bower = spawn(command, args, { cwd: global.settings.cwd, stdio: 'inherit' }); bower.on('close', function(code) { if (code !== 0) { cb(code); } else { args = []; if (process.platform === "win32") { args.push("/c"); } args.push(global.getCommandPath('gulp')); args.push('config:bower-after'); var config = spawn(command, args, { cwd: global.settings.cwd, stdio: 'inherit' }); config.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); } }); }); gulp.task('dependancy', ['validate'], function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); // args.push("node"); } else { command = "node"; } args.push(global.getCommandPath('gulp')); if (settings.repositoryManager === 'npm') { args.push('dependancy:npm'); } else { args.push('dependancy:bower'); } if (settings.env && settings.env._) { if (settings.env._.m == 'install' || settings.env.mode == 'install') { args.push("--mode"); args.push("install"); } } var dependancy = spawn(command, args, { cwd: global.settings.cwd, stdio: 'inherit' }); dependancy.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('update', function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); // args.push("node"); } else { command = "node"; } args.push(global.getCommandPath('bower')); args.push('update'); var bower = spawn(command, args.concat(process.argv.slice(3)), { cwd: global.settings.cwd, stdio: 'inherit' }); bower.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('bower:update', ['update'], function(cb) { cb(); }); gulp.task('bower:install', function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); // args.push("node"); } else { command = "node"; } args.push(global.getCommandPath('bower')); args.push('install'); var bower = spawn(command, args.concat(process.argv.slice(3)), { cwd: global.settings.cwd, stdio: 'inherit' }); bower.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('bower:uninstall', function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); // args.push("node"); } else { command = "node"; } args.push(global.getCommandPath('bower')); args.push('uninstall'); var bower = spawn(command, args.concat(process.argv.slice(3)), { cwd: global.settings.cwd, stdio: 'inherit' }); bower.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('npm:install', function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); args.push("npm"); } else { command = "npm"; } args.push('install'); args.concat(process.argv.slice(3)); var registry = gutil.env.registry || global.settings.registry; if (registry) { args.push("--registry"); args.push(registry); } var root = global.getRootPath(); var npm = spawn(command, args, { cwd: root, stdio: 'inherit' }); npm.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); }); gulp.task('npm:uninstall', function(cb) { var command = null, args = []; if (process.platform === "win32") { command = "cmd"; args.push("/c"); args.push("npm"); } else { command = "npm"; } args.push('uninstall'); args.concat(process.argv.slice(3)); var registry = gutil.env.registry || global.settings.registry; if (registry) { args.push("--registry"); args.push(registry); } var root = global.getRootPath(); var npm = spawn(command, args, { cwd: root, stdio: 'inherit' }); npm.on('close', function(code) { if (code !== 0) { cb(code); } else { cb(); } }); });