-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
58 lines (53 loc) · 1.37 KB
/
Copy pathtest.js
File metadata and controls
58 lines (53 loc) · 1.37 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
var fs=require('fs');
const ini = require('ini');
const dir='/Users/pierre';
const writeInventory = ( inv, directory ) => {
let dir = directory || '/Users/pierre' + '/.deploy';
if (! fs.existsSync(`${dir}`)){
fs.mkdirSync(dir, 0774);
}
fs.writeFileSync(`${dir}/inventory`, `[xone]\n${inv.hostname} ${inv.ip} ansible_connection=local\n`);
}
const readInventory = () => {
let dir = '/Users/pierre/.deploy';
if (fs.existsSync(`${dir}/inventory`)){
let filecontent = fs.readFileSync(`${dir}/inventory`,'utf-8');
let lines = filecontent.split('\n');
console.log(lines[0]);
let currentGroup=null;
let groups = {};
let hostInGroup=[];
lines.forEach((l,idx)=>{
if (l[0] === '['){
if (currentGroup){
// terminate the group
groups[currentGroup]=hostInGroup;
}
currentGroup = l.substr(1).slice(0, -1);
hostInGroup = [];
} else {
if (l.length > 1){
hostInGroup.push(l);
}
}
});
groups[currentGroup]=hostInGroup;
console.log(groups);
console.log(groups.xone[0]);
let elements=groups.xone[0].split(/[ ]+/);
console.log(elements[1]);
} else {
console.log('not exist');
}
}
/*
let inv = {'hostname': 'evs-rv-pg01','ip': '172.23.1.12'}
try {
writeInventory(inv);
}
catch (e){
console.log('oups');
console.log(e);
}
*/
readInventory();