diff --git a/Jakefile b/Jakefile index fbcb5ae..7b61d29 100644 --- a/Jakefile +++ b/Jakefile @@ -62,6 +62,23 @@ function copyDir(src, dest) { }); } +function removeDir(dir) { + fs.readdirSync(dir).every(function(file) { + var file = dir + "/" + file; + + var stats = fs.statSync(file); + if (stats.isDirectory()) { + removeDir(file); + } else { + fs.unlinkSync(file); + } + + return true; + }); + + fs.rmdirSync(dir); +} + function preprocess(file) { var input = fs.readFileSync(file, "utf8").trim(); return input.split("\n").map(function(line) { @@ -106,6 +123,11 @@ task("build", [], function() { fs.writeFileSync(PEGJS_OUT_FILE, preprocess(PEGJS_SRC_FILE), "utf8"); }); +desc("Remove built peg.js file (created by \"build\")"); +task("clean", [], function() { + removeDir(LIB_DIR); +}); + desc("Prepare the distribution files"); task("dist", ["build"], function() { mkdirUnlessExists(DIST_DIR); @@ -132,6 +154,11 @@ task("dist", ["build"], function() { fs.writeFileSync(DIST_NODE_DIR + "/package.json", preprocess("package.json"), "utf8"); }); +desc("Remove the distribution files (created by \"dist\")"); +task("distclean", [], function() { + removeDir(DIST_DIR); +}); + desc("Run the test suite"); task("test", [], function() { var process = childProcess.spawn("test/run", [], { customFds: [0, 1, 2] });