-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfigs.js
More file actions
42 lines (39 loc) · 1.3 KB
/
configs.js
File metadata and controls
42 lines (39 loc) · 1.3 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
const chalk = require('chalk');
var toml = require('toml');
var concat = require('concat-stream');
var fs = require('fs');
var utils = require('./utils.js');
module.exports = {
course_file: 'course.toml',
course_template: 'course_template.toml',
parsed: {},
read_config_file: function(callback) {
if (!utils.check_file_existence(this.course_file)) {
return callback(new Error('The file is not present'));
}
fs.createReadStream(this.course_file, 'utf8').pipe(concat(function(data) {
try {
module.exports.parsed = toml.parse(data);
} catch (e) {
console.error("Error parsing the " + this.course_file + " file");
console.error("Parsing error on line " + e.line + ", column " + e.column +
": " + e.message);
return callback(e);
}
set_defaults();
return callback(null);
}));
}
}
function set_defaults() {
var defaults = {
exercise_dir: "exercises",
exercise_prefix: "exercise",
exercise_schema: "exercise_schema.json"
}
for (const [key, value] of Object.entries(defaults)) {
if (isNaN(module.exports.parsed[key])) {
module.exports.parsed[key] = value;
}
}
}