Skip to content
This repository has been archived by the owner on Sep 7, 2018. It is now read-only.

Commit

Permalink
Fix build script, add compression
Browse files Browse the repository at this point in the history
  • Loading branch information
Christian Johansen committed Feb 15, 2012
1 parent 322e3df commit 8ee0aad
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 58 deletions.
132 changes: 75 additions & 57 deletions build
Expand Up @@ -4,71 +4,89 @@ var path = require("path");
var util = require("util"); var util = require("util");
var exec = require("child_process").exec; var exec = require("child_process").exec;
var fs = require("fs"); var fs = require("fs");
var jsp = require("uglify-js").parser;
var pro = require("uglify-js").uglify;


var cwd = process.cwd(); var files = [];
process.chdir(path.dirname(path.dirname(require.resolve("sinon")))); var read = 0;


exec("ruby -rubygems build", function (error, stdout, stderr) { function minify(script) {
if (error !== null) { var ast = jsp.parse(script);
console.log("Failed building Sinon.JS " + error); ast = pro.ast_mangle(ast);
} else { ast = pro.ast_squeeze(ast);
buildBuster(stdout.match(/(\d\.\d\.\d)/)[1]); return pro.gen_code(ast);
} }
});


function buildBuster(sinonVersion) { function wrap(script) {
process.cwd(cwd); return "(function () { var when; function define(cb) { when = cb(); } " +
var files = []; script + ";return buster; }());";
var read = 0; }


function finish() { function finish() {
if (read == fileNames.length) { if (read == fileNames.length) {
var fileName = path.resolve(cwd, "resources/buster-test.js"); var fileName = path.resolve(process.cwd(), "resources/buster-test.js");


fs.writeFile(fileName, files.join("\n"), function (err) { var contents = wrap(files.join("\n"));
if (err) { if (process.argv[2] == "--minify" || process.argv[2] == "-m") {
console.log("Failed building resources/buster-test.js: " + err.message); contents = minify(contents);
} else {
var kb = Math.floor(files.join("\n").length / 10.24) / 100;
console.log("Built resources/buster-test.js (" + kb + "kB)");
}
});
} }
fs.writeFile(fileName, contents, function (err) {
if (err) {
console.log("Failed building resources/buster-test.js: " + err.message);
} else {
var kb = Math.floor(contents.length / 10.24) / 100;
console.log("Built resources/buster-test.js (" + kb + "kB)");
}
});
} }
}


var fileNames = [ var fileNames = [
"buster-core/lib/buster-core", "when/when",
"buster-core/lib/buster-event-emitter", "buster-core/lib/buster-core",
"buster-format/lib/buster-format", "buster-core/lib/buster-event-emitter",
"buster-assertions/lib/buster-assertions", "buster-format/lib/buster-format",
"buster-assertions/lib/buster-assertions/expect", "buster-assertions/lib/buster-assertions",
"buster-evented-logger/lib/buster-evented-logger", "buster-assertions/lib/buster-assertions/expect",
"buster-test/lib/buster-test/stack-filter", "buster-evented-logger/lib/buster-evented-logger",
"buster-test/lib/buster-test/spec", "buster-test/lib/buster-test/stack-filter",
"buster-test/lib/buster-test/test-case", "buster-test/lib/buster-test/spec",
"buster-test/lib/buster-test/test-runner", "buster-test/lib/buster-test/test-case",
"buster-test/lib/buster-test/reporters", "buster-test/lib/buster-test/test-runner",
"buster-test/lib/buster-test/reporters/html", "buster-test/lib/buster-test/reporters",
"buster-test/lib/buster-test/auto-run", "buster-test/lib/buster-test/reporters/html",
"buster-test/lib/buster-test/test-context", "buster-test/lib/buster-test/auto-run",
"buster-test/lib/buster-test", "buster-test/lib/buster-test/test-context",
"sinon/pkg/sinon-" + sinonVersion, "buster-test/lib/buster-test",
"sinon-buster/lib/sinon-buster", "sinon/lib/sinon.js",
"lib/buster/buster-wiring.js", "sinon/lib/sinon/spy.js",
"lib/buster.js"]; "sinon/lib/sinon/stub.js",
"sinon/lib/sinon/mock.js",
"sinon/lib/sinon/collection.js",
"sinon/lib/sinon/sandbox.js",
"sinon/lib/sinon/test.js",
"sinon/lib/sinon/test_case.js",
"sinon/lib/sinon/assert.js",
"sinon/lib/sinon/util/event.js",
"sinon/lib/sinon/util/fake_xml_http_request.js",
"sinon/lib/sinon/util/fake_timers.js",
"sinon/lib/sinon/util/fake_server.js",
"sinon/lib/sinon/util/fake_server_with_clock.js",
"sinon-buster/lib/sinon-buster",
"lib/buster/buster-wiring.js",
"lib/buster.js"];


fileNames.forEach(function (fileName, i) { fileNames.forEach(function (fileName, i) {
try { try {
fileName = require.resolve(fileName); fileName = require.resolve(fileName);
} catch (e) { } catch (e) {
fileName = path.resolve(cwd, fileName); fileName = path.resolve(process.cwd(), fileName);
} }


fs.readFile(fileName, "utf-8", function (err, data) { fs.readFile(fileName, "utf-8", function (err, data) {
if (err) throw err; if (err) throw err;
files[i] = data; files[i] = data;
read += 1; read += 1;
finish(); finish();
});
}); });
} });
2 changes: 1 addition & 1 deletion doc/samples/strftime.html
Expand Up @@ -5,7 +5,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head> </head>
<body> <body>
<script type="text/javascript" src="buster-test.js"></script> <script type="text/javascript" src="../../resources/buster-test.js"></script>
<script type="text/javascript" src="strftime.js"></script> <script type="text/javascript" src="strftime.js"></script>
<script type="text/javascript" src="strftime-test.js"></script> <script type="text/javascript" src="strftime-test.js"></script>
</body> </body>
Expand Down
4 changes: 4 additions & 0 deletions package.json
Expand Up @@ -34,5 +34,9 @@
"sinon": ">=1.3.1", "sinon": ">=1.3.1",
"sinon-buster": ">=0.4.1", "sinon-buster": ">=0.4.1",
"buster-static": ">=0.3" "buster-static": ">=0.3"
},
"devDependencies": {
"when": "https://github.com/cujojs/when/tarball/v0.11.1",
"uglify-js": "~1.2.5"
} }
} }

0 comments on commit 8ee0aad

Please sign in to comment.