-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
74 lines (68 loc) · 2.07 KB
/
index.js
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
67
68
69
70
71
72
73
74
var fs = require('fs');
var path = require('path');
var os = require('os');
exports.getLibraryConfig = function () {
var packagePath = path.resolve(__dirname, 'package.json');
return JSON.parse(fs.readFileSync(packagePath, 'utf-8'));
};
// user settings
exports.getDefaultsPath = function () {
var homeDir = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
return path.resolve(homeDir, '.flowhub.json');
};
exports.getDefaults = function () {
var defaults = {};
var defaultsPath = exports.getDefaultsPath();
if (fs.existsSync(defaultsPath)) {
var storedDefaults = JSON.parse(fs.readFileSync(defaultsPath));
for (var name in storedDefaults) {
defaults[name] = storedDefaults[name];
}
}
if (!defaults.user && process.env.FLOWHUB_USER_ID) {
defaults.user = process.env.FLOWHUB_USER_ID;
}
return defaults;
};
exports.saveDefaults = function (values) {
var defaultsPath = exports.getDefaultsPath();
fs.writeFileSync(defaultsPath, JSON.stringify(values, null, 2), 'utf-8');
};
// flowhub registration
exports.getStoredPath = function () {
var root = process.env.PROJECT_HOME || process.cwd();
return path.resolve(root, 'flowhub.json');
};
exports.getStored = function () {
var stored = {};
var storedPath = exports.getStoredPath();
if (fs.existsSync(storedPath)) {
stored = JSON.parse(fs.readFileSync(storedPath));
if (stored.host === 'autodetect') {
stored.host = exports.discoverHost();
}
}
return stored;
};
exports.saveStored = function (values) {
var storedPath = exports.getStoredPath();
fs.writeFileSync(storedPath, JSON.stringify(values, null, 2), 'utf-8');
};
exports.discoverHost = function () {
var ifaces = os.networkInterfaces();
var address, int_address;
var filter = function (connection) {
if (connection.family !== 'IPv4') {
return;
}
if (connection.internal) {
int_address = connection.address;
} else {
address = connection.address;
}
};
for (var device in ifaces) {
ifaces[device].forEach(filter);
}
return address || int_address;
};