forked from JeffreyZhao/wind
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild-npm.js
More file actions
97 lines (75 loc) · 2.5 KB
/
build-npm.js
File metadata and controls
97 lines (75 loc) · 2.5 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
"use strict";
var path = require("path"),
fs = require("fs"),
utils = require("../lib/utils"),
Wind = utils.Wind,
_ = Wind._;
var npmDir = path.join(__dirname, "../bin/npm");
var srcDir = path.join(__dirname, "../src");
if (fs.existsSync(npmDir)) {
utils.rmdirSync(npmDir);
}
fs.mkdirSync(npmDir);
var packageBase = {
author: "Jeffrey Zhao <jeffz@live.com> (http://zhaojie.me/)",
homepage: "https://github.com/JeffreyZhao/wind",
bugs: {
"url": "https://github.com/JeffreyZhao/wind/issues",
"email": "jeffz@live.com"
}
};
var json2str = function (json) {
return JSON.stringify(json, null, 4);
}
var getVersion = function () {
var total = 0;
_.each(Wind.modules, function (options) {
var version = options.version;
var lastDot = version.lastIndexOf(".");
total += parseInt(version.substring(lastDot + 1), 10);
});
return "0.7." + total;
}
var buildWind = function () {
var dir = path.join(npmDir, "wind");
fs.mkdirSync(dir);
var files = [
"wind",
"wind-core",
"wind-compiler",
"wind-builderbase",
"wind-async",
"wind-promise"
];
_.each(files, function (f) {
var filename = f + ".js";
utils.copySync(path.join(srcDir, filename), path.join(dir, filename));
});
var packageData = _.clone(packageBase);
packageData.name = "wind";
packageData.version = getVersion();
packageData.main = "wind.js";
packageData.description = "Wind.js is an advanced library which enable us to control flow with plain JavaScript for asynchronous programming (and more) without additional pre-compiling steps.";
fs.writeFileSync(path.join(dir, "package.json"), json2str(packageData), "utf8");
console.log("wind generated.");
}
var buildWindC = function () {
var dir = path.join(npmDir, "windc");
fs.mkdirSync(dir);
utils.copySync(path.join(srcDir, "windc.js"), path.join(dir, "windc.js"));
var packageData = _.clone(packageBase);
packageData.name = "windc";
packageData.version = "0.7.1";
packageData.main = "windc.js";
packageData.description = "The AOT compiler for Wind.js";
packageData.dependencies = {
"wind": "~0.7.1",
"optimist": "*",
"esprima": "*"
};
var packageContent = json2str(packageData);
fs.writeFileSync(path.join(dir, "package.json"), packageContent, "utf8");
console.log("windc generated.");
}
buildWind();
buildWindC();