-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.js
68 lines (63 loc) · 1.24 KB
/
utils.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
/*
* Copyright (c) 2021 EdgerOS Team.
* All rights reserved.
*
* Detailed license information can be found in the LICENSE file.
*
* File: util.js util module.
*
* Author: Cheng.yongbin
*
*/
const advnwc = require('advnwc');
const permission = require('permission');
/*
* Check permission.
*/
function checkPerm(keys) {
return new Promise((resolve, reject) => {
let perms = keys.reduce((ret, key) => {
ret[key] = true;
return ret;
}, {});
permission.check(perms, function(result) {
console.log(`Check permission ${perms} is ${result}.`);
if (result) {
resolve(true);
} else {
reject(new Error('Need permission.'));
}
});
});
}
/*
* Get ifnames.
*/
function getIfnames() {
return new Promise((resolve, reject) => {
advnwc.netifs(true, function(error, list) {
if (error) {
reject(error);
} else {
console.log('LAN port interface:', list);
resolve(list[0]);
}
});
})
.then((ifname) => {
return new Promise((resolve, reject) => {
advnwc.netifs(false, function(error, list) {
if (error) {
reject(error);
} else {
console.log('WAN port interface:', list);
resolve({lan: ifname, wan: list[0]});
}
});
});
});
}
module.exports = {
checkPerm,
getIfnames
};