UNPKG

erasmus

Version:

A simple tool for literate programming

54 lines (53 loc) 1.34 kB
#!/usr/bin/env node "use strict"; var path_1 = require('path'); var fs_1 = require('fs'); var erasmus_1 = require('./erasmus'); function exit(error) { var code; if (error) { code = -1; console.error(error instanceof Error ? error.message : error); } else { code = 0; } process.exit(code); } // The module is not being invoked directly if (require.main !== module) { console.error(path_1.basename(__filename) + " can only be invoked as a command."); process.exit(-1); } var encoding = "utf8"; var output = process.stdout; var _a = process.argv, option = _a[2]; var input = undefined; var message = "Could not continue."; switch (option) { case undefined: case "-h": case "--help": message = "Usage: erasmus FILE"; break; case "-p": case "--pipe": input = process.stdin; break; default: if (fs_1.existsSync(option) && fs_1.statSync(option).isFile()) { input = fs_1.createReadStream(option); } else { message = "Could not open " + option + "."; } } if (input == undefined) { exit(message); } else { var extractor = new erasmus_1.CodeExtractor({ encoding: "utf-8" }); input.on("error", exit); input.setEncoding(encoding); input.pipe(extractor).pipe(output); }