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.

108 lines (85 loc) 2.72 kB
'use strict'; var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var util = require('util'); var argv = require('minimist')(process.argv.slice(2)); var rename = require('gulp-rename'); var jeditor = require("gulp-json-editor"); var config = require('config-file') gulp.task('archetype:miscellaneous', ['config'], function() { var root = global.getRootPath(); var pomy = global.getPomyPath(); var configPaths = []; if (!fs.existsSync(path.join(root, "gencert.sh"))) { configPaths.push(pomy + "gencert.sh"); } return gulp.src(configPaths) .pipe(gulp.dest(root)); }); gulp.task('archetype:config', ['archetype:miscellaneous'], function() { var root = global.getRootPath(); var pomy = global.getPomyPath(); //--group=com.lico --artifact=工程名 // argv.group // argv.artifact var params = util._extend({}, argv), settings = global.settings; delete params._; params.artifact = params.artifact || params.name || settings.artifact || path.parse(path.resolve(root)).name; params.group = params.group || settings.group || path.parse(path.resolve(root, "../")).name; params.version = global.getVersion(params.version || settings.version || '0.0.1'); params.name = params.group + "." + params.artifact; util._extend(global.settings, params); var configPath = null; if (!fs.existsSync(path.join(root, "pomy.json"))) { configPath = pomy + "project.json"; } else { configPath = root + "pomy.json"; } return gulp.src(configPath) .pipe(jeditor(params)) .pipe(rename("pomy.json")) .pipe(gulp.dest(root)); }); gulp.task('archetype:create', ['archetype:config'], function() { var root = global.getRootPath(); var pomy = global.getPomyPath(); var settings = global.settings; var dirs = [settings._target.root, settings._src.root, settings._src.main, settings._testunit.js, settings._src.fonts, settings._src.images, settings._src.css, settings._src.less, settings._src.scss, settings._src.sass, // settings._src.skin, settings._src.skins, settings._src.js, settings._src.template ]; for (var i = 0, len = dirs.length; i < len; i++) { var dir = dirs[i]; if (!fs.existsSync(path.join(root, dir))) { fs.mkdirSync(dir); } } var configPath = null; if (!fs.existsSync(path.join(root, "local.json"))) { configPath = pomy + "local.json"; } else { configPath = root + "local.json"; } return gulp.src(configPath) .pipe(jeditor({ name: settings.name, version: settings.version })) .pipe(gulp.dest(root)); }); gulp.task('archetype:generate', ['archetype:create'], function(cb) { cb(); });