module main; int main(string[] args) { import nudelo: Config, minify; import std.array: split; import std.getopt: defaultGetoptPrinter, getopt; import std.stdio:File, stderr, stdin, stdout, writeln; try { Config cfg; string sourceFile = ""; string destFile = ""; string cssProcessor = ""; string jsProcessor = ""; auto res = getopt(args, "input|i", "input file name", &sourceFile, "output|o", "output file name", &destFile, "process-css|css", "specifies programm to process css", &cssProcessor, "process-js|js", "specifies programm to process javascript", &jsProcessor, "fix-unknown|f", "fix unknown server-side scripts open tag", &cfg.fixUnknown ); if (res.helpWanted) { defaultGetoptPrinter("\nUsage: nudelo [options]\n\nOptions:", res.options); return 0; } if (cssProcessor.length != 0) { cfg.processCss = split(cssProcessor); } if (jsProcessor.length != 0) { cfg.processJavascript = split(jsProcessor); } cfg.inputFile = sourceFile.length == 0 ? stdin : File(sourceFile, "rb"); cfg.outputFile = destFile.length == 0 ? stdout : File(destFile, "wb"); cfg.minify(); return 0; } catch (Throwable e) { stderr.writeln(e.msg); return -1; } }