-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
40 lines (37 loc) · 984 Bytes
/
index.js
File metadata and controls
40 lines (37 loc) · 984 Bytes
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
var exec = require('child_process').exec;
var pyyamlCommand = 'python ' + __dirname + '/pyyaml.py';
exports.eval = function(yamlString, callback) {
exec(pyyamlCommand + ' "' + yamlString + '"', function(err, stdout) {
if (err) {
callback(err, null);
} else {
var jsonObj = null;
try {
jsonObj = JSON.parse(stdout);
} catch (err) {
callback(err, null);
return;
}
callback(null, jsonObj);
}
});
}
exports.load = function(yamlFile, callback) {
exec(pyyamlCommand + ' -f ' + yamlFile, function(err, stdout) {
if (err) {
callback(err, null);
} else {
var jsonObj = null;
try {
jsonObj = JSON.parse(stdout);
} catch (err) {
callback(err, null);
return;
}
callback(null, jsonObj);
}
});
}
exports.dump = function(object, file, callback) {
exec(pyyamlCommand + ' -d ' + file + ' ' + JSON.stringify(JSON.stringify(object)), callback);
}