Skip to content

Commit 021b03e

Browse files
committed
simple init
1 parent 82219c4 commit 021b03e

File tree

1 file changed

+61
-4
lines changed

1 file changed

+61
-4
lines changed

lib/commands/init.js

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,69 @@
11
var path = require('path');
22
var opm = require('../opm');
3-
var log = require('../log');
3+
var async = require('async');
4+
var mkdirp = require('mkdirp');
5+
var commander = require('commander');
6+
var JSONConfig = require('../opm/Package/configloader/json.js').JSONConfig;
47

58
function init(dir, options) {
6-
opm.npm.config.set('init-module', path.join(__dirname, '../npm-init.js'));
7-
opm.npm.commands.init([dir], function(err) {
9+
var root = path.join(process.cwd(), dir);
10+
var config;
11+
12+
async.series([
13+
// 已存在?
14+
function(callback) {
15+
var err;
16+
if (opm.findPackageRoot(root)) {
17+
err = new Error('already inited.');
18+
}
19+
callback(err);
20+
},
21+
// 创建配置文件对象
22+
function(callback) {
23+
config = new JSONConfig("{}");
24+
callback();
25+
},
26+
// 收集名称信息
27+
function(callback) {
28+
var defaultValue = path.basename(root);
29+
commander.prompt('name(' + defaultValue + '): ', function(input) {
30+
config.setProperty('name', input || defaultValue);
31+
callback();
32+
});
33+
},
34+
// 收集版本信息
35+
function(callback) {
36+
var defaultValue = '0.0.1';
37+
commander.prompt('version(' + defaultValue + '): ', function(input) {
38+
config.setProperty('version', input || defaultValue)
39+
callback();
40+
});
41+
},
42+
// 描述信息
43+
function(callback) {
44+
commander.prompt('description: ', function(input) {
45+
config.setProperty('description', input);
46+
callback();
47+
});
48+
},
49+
// 停止收集信息
50+
function(callback) {
51+
process.stdin.destroy();
52+
callback();
53+
},
54+
// 创建目录
55+
function(callback) {
56+
mkdirp(root, callback);
57+
},
58+
// 初始化package.json
59+
function(callback) {
60+
config.save(path.join(root, 'package.json'), callback);
61+
}
62+
], function(err) {
863
if (err) {
9-
log.error('init', err);
64+
console.error(err);
65+
} else {
66+
console.log('inited');
1067
}
1168
});
1269
}

0 commit comments

Comments
 (0)