1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import sys.FileSystem;
- final FILE = "out/main.c";
- function deleteDirectory(path:String) {
- if (!FileSystem.isDirectory(path))
- return FileSystem.deleteFile(path);
- for (item in FileSystem.readDirectory(path))
- deleteDirectory('$path/$item');
- FileSystem.deleteDirectory(path);
- }
- function main() {
- final args = Sys.args();
- final code =
- try {
- switch args {
- case [""]:
- checkForEmptySourceHeader(FILE);
- case [expected]:
- checkSourceHeader(FILE, expected);
- case _:
- throw "Incorrect number of arguments to script.";
- }
- 0;
- } catch (e){
- Sys.stderr().writeString(e + "\n");
- 1;
- }
- deleteDirectory("out");
- Sys.exit(code);
- }
- function checkForEmptySourceHeader(path:String) {
- final content = getCSourceContent(path);
- if (StringTools.startsWith(content, "// "))
- throw "File has a source header when none was expected: " + content.split("\n")[0];
- }
- function checkSourceHeader(path:String, expected:String) {
- final content = getCSourceContent(path);
- if (!StringTools.startsWith(content, "// " + expected))
- throw "File source header does not start with expected: // " + expected +
- "\nSource header: " + content.split("\n")[0];
- }
- function getCSourceContent(path:String) {
- // have to skip the BOM character
- return sys.io.File.getContent(path).substr(1);
- }
|