-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSAT-L.js
More file actions
66 lines (54 loc) · 2.03 KB
/
Copy pathSAT-L.js
File metadata and controls
66 lines (54 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"use strict";
const fs = require("fs");
const config = require("config");
const { program: commander } = require('commander');
const MxModel = require("./MxModel/MxModel.js");
const MPRCollector = require("./MPRCollector.js")
const { log } = require("console");
let model = new MxModel();
commander
.version('1.0.0', '-v, --version')
.usage('[OPTIONS]...')
.requiredOption('-m, --mpr <pmr file>', 'Path/Filename of the mpr under investigation ')
.requiredOption('-o, --out <output file>', 'Path/Filenam of the result')
.parse();
const options = commander.opts();
main();
function main() {
let workingDir = config.workingDir;
let mprFolder = options.mpr;
let mpr = '';
mpr = findMprFile(mprFolder);
if (!mpr) {
console.error("No .mpr file found in the specified folder.");
process.exit(1);
}
let outFile = options.out;
let folder = workingDir + config.get("outputFolder");
let mprCollector = new MPRCollector(mpr, mprFolder);
mprCollector.collect().then((model) => {
model.sortAll();
console.log("Writing SAT-L output to " + folder + '/' + outFile + '.json');
fs.writeFileSync(folder + '/' + outFile + '.json', JSON.stringify(model, null, 2));
console.log("====================== Ready =======================");
});
}
function findMprFile(folderPath) {
try {
const files = fs.readdirSync(folderPath);
const mprFile = files.find(file => file.endsWith('.mpr'));
return mprFile ? `${folderPath}/${mprFile}` : null;
} catch (err) {
console.error("Error reading folder:", err.message);
return null;
}
}
function getDateTimeString() {
let now = new Date();
let year = now.getFullYear();
let month = ('00' + (now.getMonth() + 1).toString()).slice(-2);
let day = ('00' + now.getDate().toString()).slice(-2);
let hour = ('00' + now.getHours().toString()).slice(-2);
let minute = ('00' + now.getMinutes().toString()).slice(-2);
return `${year}${month}${day}_${hour}${minute}`;
}