]> git.kianting.info Git - clo/blob - src/index.ts
english breakline, and generate try to count the text size
[clo] / src / index.ts
1 var fs = require('fs');
2 var argv : any = require('minimist')(process.argv.slice(2));
3
4 import * as parser from "./parser.js";
5
6 /**
7 * help for inputing `--help` parameter.
8 */
9 export let helpDesc =
10 `
11 clo: clo INPUT_FILE --output-js OUTPUT_JS_FILE
12
13 \ta little typesetter powered by TypeScript/Javascript.
14
15 ## Arguments
16 INPUT_FILE\tan input .clo file
17
18 ## Parameters
19 ---
20 --output-js\tgenerated the output middle JS file
21
22
23 Report bugs to: clo@kianting.info
24 clo home page: <https://kianting.info/wiki/w/Project:Clo>
25 `
26
27 processArgv(argv, helpDesc);
28
29 /**
30 * processing the passed `argv` (arguments)
31 */
32
33 export function processArgv(argv : any, helpDesc : string){
34 let inputFile : string[] = argv['_'];
35 let outputJSFile : string | true = argv['output-js'];
36
37 let NoInputFile : boolean = (inputFile.length == 0);
38 let NoOutputJSFile : boolean = (outputJSFile === undefined || outputJSFile == true);
39 let helpTriggered : boolean = argv['help'];
40
41 if (inputFile.length > 1){
42 console.log("Sorry, the input file should be only one.");
43 }
44
45 /** output --help */
46 if (helpTriggered || NoInputFile || NoOutputJSFile){
47 console.log(helpDesc);
48 }else{
49 fs.readFile(inputFile[0], 'utf8', (err : Error, inputText : string) => {
50 if (err) throw err;
51
52 let tree = parser.inputTextToTree(inputText);
53
54 let output = parser.treeToJS(tree);
55
56 fs.writeFile(outputJSFile, output , (err : Error) => {
57 if (err) throw err;
58 });
59
60 });
61 }
62
63 }
64
65
66
67
68