diff --git a/.gitignore b/.gitignore index e1f0a39..e11bcbf 100644 --- a/.gitignore +++ b/.gitignore @@ -138,3 +138,4 @@ userdata # output output.cnf +result.cnf diff --git a/package.json b/package.json index 0569a32..cea21af 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "bin": "dist/bin/" }, "scripts": { - "start": "pnpm run build && node --enable-source-maps .", + "generate": "pnpm run build && node --enable-source-maps dist/generateRules.js", + "visualize": "pnpm run build && node --enable-source-maps dist/visualizeResult.js", "test": "pnpm run build && pnpm run test:style", "format": "prettier --write .", "build": "tsc", @@ -35,4 +36,4 @@ "ts-node": "^10.9.2", "typescript": "^5.4.5" } -} +} \ No newline at end of file diff --git a/visualizeResult.ts b/visualizeResult.ts index e69de29..efcda1d 100644 --- a/visualizeResult.ts +++ b/visualizeResult.ts @@ -0,0 +1,34 @@ +// Sources used: https://stackoverflow.com/a/32599033 +import { createReadStream } from "fs"; +import { createInterface } from "readline"; +import { visualizeValues } from "./src/visualizeValues"; + +async function parseInputFile(): Promise { + const fileStream = createReadStream("./result.cnf"); + const rl = createInterface({ + input: fileStream, + crlfDelay: Infinity, + }); + + const result: number[] = []; + + for await (const line of rl) { + if (!line.startsWith("v")) continue; + const values = line.split(" ").slice(1).map(Number); + + for (const value of values) { + if (value <= 0) continue; + result.push(value); + } + } + + return result; +} + +async function main(): Promise { + const values = await parseInputFile(); + console.log("Result:"); + visualizeValues(values); +} + +main();