forked from cappuccino/OJTest
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Jakefile
41 lines (34 loc) · 1.06 KB
/
Jakefile
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
#!/usr/bin/env narwhal
JAKE = require("jake");
SYSTEM = require("system");
FILE = require("file");
OS = require("os");
FileList = JAKE.FileList;
JAKE.task ("docs", ["documentation"]);
JAKE.task ("documentation", function()
{
if (executableExists("doxygen"))
{
if (OS.system(["ruby", FILE.join("documentation", "make_headers")]))
OS.exit(1); //rake abort if ($? != 0)
if (OS.system(["doxygen", FILE.join("documentation", "OJTest.doxygen")]))
OS.exit(1); //rake abort if ($? != 0)
}
else
print("doxygen not installed. skipping documentation generation.");
});
JAKE.task("test", function(){
var tests = new FileList('Test/*Test.j');
var cmd = ["ojtest"].concat(tests.items());
var cmdString = cmd.map(OS.enquote).join(" ");
var code = OS.system(cmdString);
if (code !== 0)
OS.exit(code);
});
executableExists = function(/*String*/ aFileName)
{
return SYSTEM.env["PATH"].split(':').some(function(/*String*/ aPath)
{
return FILE.exists(FILE.join(aPath, aFileName));
});
}