UNPKG

2.72 kBJavaScriptView Raw
1'use strict';
2
3var gulp = require('gulp');
4var fs = require('fs');
5var path = require('path');
6var util = require('util');
7var argv = require('minimist')(process.argv.slice(2));
8var rename = require('gulp-rename');
9var jeditor = require("gulp-json-editor");
10var config = require('config-file')
11
12gulp.task('archetype:miscellaneous', ['config'], function() {
13 var root = global.getRootPath();
14 var pomy = global.getPomyPath();
15
16 var configPaths = [];
17
18 if (!fs.existsSync(path.join(root, "gencert.sh"))) {
19 configPaths.push(pomy + "gencert.sh");
20 }
21
22 return gulp.src(configPaths)
23 .pipe(gulp.dest(root));
24});
25
26gulp.task('archetype:config', ['archetype:miscellaneous'], function() {
27 var root = global.getRootPath();
28 var pomy = global.getPomyPath();
29
30 //--group=com.lico --artifact=工程名
31 // argv.group
32 // argv.artifact
33 var params = util._extend({}, argv),
34 settings = global.settings;
35
36 delete params._;
37 params.artifact = params.artifact || params.name || settings.artifact || path.parse(path.resolve(root)).name;
38 params.group = params.group || settings.group || path.parse(path.resolve(root, "../")).name;
39 params.version = global.getVersion(params.version || settings.version || '0.0.1');
40
41 params.name = params.group + "." + params.artifact;
42
43 util._extend(global.settings, params);
44
45 var configPath = null;
46
47 if (!fs.existsSync(path.join(root, "pomy.json"))) {
48 configPath = pomy + "project.json";
49 } else {
50 configPath = root + "pomy.json";
51 }
52
53 return gulp.src(configPath)
54 .pipe(jeditor(params))
55 .pipe(rename("pomy.json"))
56 .pipe(gulp.dest(root));
57});
58
59gulp.task('archetype:create', ['archetype:config'], function() {
60 var root = global.getRootPath();
61 var pomy = global.getPomyPath();
62
63 var settings = global.settings;
64
65 var dirs = [settings._target.root,
66
67 settings._src.root,
68 settings._src.main,
69 settings._testunit.js,
70
71 settings._src.fonts,
72 settings._src.images,
73 settings._src.css,
74 settings._src.less,
75 settings._src.scss,
76 settings._src.sass,
77 // settings._src.skin,
78 settings._src.skins,
79 settings._src.js,
80 settings._src.template
81 ];
82
83 for (var i = 0, len = dirs.length; i < len; i++) {
84 var dir = dirs[i];
85 if (!fs.existsSync(path.join(root, dir))) {
86 fs.mkdirSync(dir);
87 }
88 }
89
90 var configPath = null;
91
92 if (!fs.existsSync(path.join(root, "local.json"))) {
93 configPath = pomy + "local.json";
94 } else {
95 configPath = root + "local.json";
96 }
97
98 return gulp.src(configPath)
99 .pipe(jeditor({
100 name: settings.name,
101 version: settings.version
102 }))
103 .pipe(gulp.dest(root));
104});
105
106gulp.task('archetype:generate', ['archetype:create'], function(cb) {
107 cb();
108});
\No newline at end of file