-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
39 lines (34 loc) · 950 Bytes
/
Copy pathindex.js
File metadata and controls
39 lines (34 loc) · 950 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
"use strict";
module.exports = (()=>{
var svc = {};
svc.parse = parse;
return svc;
function parse(bashOutput, parameters){
parameters = parameters || {};
parameters.headers = parameters.headers || {};
var lines = bashOutput.split(/[\n\r]+/);
let headers = lines[0].split(/\s+/);
lines = lines.slice(1);
return lines.map((line)=>{
let obj = {};
if (!line){
return null;
}
let pieces = line.split(/\s+/);
for (var i = 0; i < headers.length && i < pieces.length; i++){
var value;
if (i == headers.length - 1){
value = pieces.slice(i).join(' ');
} else {
value = pieces[i];
}
obj[getHeaderName(parameters.headers, headers[i])] = value;
}
return obj;
})
.filter((obj)=>{ return !!obj; });
}
function getHeaderName(headerMap, headerName){
return headerMap[headerName] || headerName;
}
})();