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.
124 lines (106 loc) • 2.92 kB
JavaScript
var
gulp = require('gulp'),
gutil = require('gulp-util'),
config = require('config-file'),
gulpif = require('gulp-if'),
jeditor = require("gulp-json-editor"),
path = require('path'),
minimist = require('minimist'),
spawn = require('child_process').spawn;
gulp.task('update:version-self', [], function() {
var argvs = gutil.env;
var version = argvs.v || argvs.version;
var pomy = global.getPomyPath();
return gulp.src(pomy + "pomy.json")
.pipe(gulpif(!!version, jeditor({
version: version
})))
.pipe(gulp.dest(pomy));
});
gulp.task('update:version-node', [], function() {
var argvs = gutil.env;
var version = argvs.v || argvs.version;
var pomy = global.getPomyPath();
return gulp.src(pomy + "package.json")
.pipe(gulpif(!!version, jeditor({
version: version
})))
.pipe(gulp.dest(pomy));
});
gulp.task('update:version-bower', [], function() {
var argvs = gutil.env;
var version = argvs.v || argvs.version;
var pomy = global.getPomyPath();
return gulp.src(pomy + "bower.json")
.pipe(gulpif(!!version, jeditor({
version: version
})))
.pipe(gulp.dest(pomy));
});
gulp.task('update:version-site', [], function() {
var argvs = gutil.env;
var version = argvs.v || argvs.version;
var pomy = global.getPomyPath();
return gulp.src(pomy + "site/package.json")
.pipe(gulpif(!!version, jeditor({
version: version
})))
.pipe(gulp.dest(pomy + "site/"));
});
gulp.task('update:version-docs', [], function() {
var argvs = gutil.env;
var version = argvs.v || argvs.version;
var pomy = global.getPomyPath();
return gulp.src(pomy + "site/plugins/docs/package.json")
.pipe(gulpif(!!version, jeditor({
"version": version
})))
.pipe(gulp.dest(pomy + "site/plugins/docs/"));
});
gulp.task('update:version', [
"update:version-self",
"update:version-node",
"update:version-bower",
"update:version-site",
"update:version-docs"
]);
gulp.task('update:self', function(cb) {
var cwd = path.join(global.settings.cwd, '../../');
var argvs = gutil.env;
var args = [];
var command = null;
if (process.platform === "win32") {
command = "cmd";
args.push('/c');
args.push("npm");
} else {
command = "npm";
}
args.push("update");
args.push("pomy");
if (argvs.g || argvs.global) {
args.push("-g")
}
if (argvs.registry || global.settings.registry) {
args.push("--registry");
args.push(argvs.registry || global.settings.registry);
}
var npm = spawn(command, args, {
cwd: cwd,
stdio: 'inherit'
});
npm.on('close', function(code) {
if (code !== 0) {
console.log('pomy update self process exited with code: ' + code + '.');
cb(code);
} else {
cb();
}
});
});
gulp.task('update:pomy', ['update:self'], function(cb) {
cb();
});
gulp.task('upgrade', ['update:self'], function(cb) {
cb();
});