forked from linfaxin/AndroidUI-CLI
/
index.js
67 lines (58 loc) · 2.18 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var program = require('commander');
var chalk = require('chalk');
var fs = require('fs');
var fse = require('fs-extra');
var child_process = require('child_process');
var package = require('./package');
module.exports = {
create : function (args, globalPackageInfo) {
var template = (args && args[0]) ? args[0] : 'default';
var templateCommonDir = `node_modules/${package.name}/templates/_common`;
var templateDir = `node_modules/${package.name}/templates/${template}`;
if(!fs.existsSync(templateDir)){
console.error(`template ${template} not found!`);
return;
}
try {
fse.copySync(templateCommonDir, './');
fse.copySync(templateDir, './');
} catch (err) {
console.error(err)
}
console.log('downloading project dependencies...');
child_process.exec('npm install', function(err,stdout,stderr){
if (err) {
console.error(`exec error: ${err}`);
console.log('stderr:\n' + stderr);
console.log('stdout:\n' + stdout);
return;
}
console.log('build project...');
try {
fse.copySync('node_modules/androiduix/dist', 'androidui-sdk/');
} catch (err) {
console.error(err)
}
child_process.exec('npm run build', function (err,stdout,stderr) {
if (err) {
console.error(`exec error: ${err}`);
console.log('stderr:\n' + stderr);
console.log('stdout:\n' + stdout);
return;
}
console.log('create project finish');
});
});
},
list : function (args, globalPackageInfo) {
console.log(' Available official templates:');
var files = fs.readdirSync(`node_modules/${package.name}/templates`);
files.forEach(function(fileName){
if(fileName.startsWith('_')) return;
console.log(
' ' + chalk.yellow('★') +
' ' + chalk.blue('') +
' - ' + fileName);
});
}
};