@andersbakken/fisk 4.0.29 → 4.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builder/fisk-builder.js +3117 -3117
- package/monitor/fisk-monitor.js +348 -335
- package/package.json +2 -2
- package/scheduler/fisk-scheduler.js +634 -621
package/monitor/fisk-monitor.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var blessed = require('@andersbakken/blessed');
|
|
5
5
|
var require$$0$4 = require('events');
|
|
6
|
-
var require$$1
|
|
6
|
+
var require$$1 = require('https');
|
|
7
7
|
var require$$2$1 = require('http');
|
|
8
8
|
var require$$3 = require('net');
|
|
9
9
|
var require$$4 = require('tls');
|
|
@@ -11,17 +11,17 @@ var require$$0$3 = require('crypto');
|
|
|
11
11
|
var require$$6 = require('url');
|
|
12
12
|
var require$$0$1 = require('zlib');
|
|
13
13
|
var require$$0 = require('fs');
|
|
14
|
-
var
|
|
14
|
+
var path = require('path');
|
|
15
15
|
var require$$2 = require('os');
|
|
16
16
|
var require$$0$2 = require('stream');
|
|
17
17
|
var assert = require('assert');
|
|
18
|
-
var require$$1$
|
|
18
|
+
var require$$1$1 = require('module');
|
|
19
19
|
|
|
20
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
21
|
|
|
22
22
|
var blessed__default = /*#__PURE__*/_interopDefaultLegacy(blessed);
|
|
23
23
|
var require$$0__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
|
|
24
|
-
var require$$1__default
|
|
24
|
+
var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
|
|
25
25
|
var require$$2__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$2$1);
|
|
26
26
|
var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3);
|
|
27
27
|
var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4);
|
|
@@ -29,11 +29,11 @@ var require$$0__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
|
|
|
29
29
|
var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6);
|
|
30
30
|
var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
|
|
31
31
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
|
|
32
|
-
var
|
|
32
|
+
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
33
33
|
var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
|
|
34
34
|
var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
|
|
35
35
|
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
|
|
36
|
-
var require$$1__default$
|
|
36
|
+
var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
|
|
37
37
|
|
|
38
38
|
var bufferUtilExports = {};
|
|
39
39
|
var bufferUtil$1 = {
|
|
@@ -69,7 +69,7 @@ function requireNodeGypBuild$1 () {
|
|
|
69
69
|
if (hasRequiredNodeGypBuild$1) return nodeGypBuild;
|
|
70
70
|
hasRequiredNodeGypBuild$1 = 1;
|
|
71
71
|
var fs = require$$0__default["default"];
|
|
72
|
-
var path =
|
|
72
|
+
var path = path__default["default"];
|
|
73
73
|
var os = require$$2__default["default"];
|
|
74
74
|
|
|
75
75
|
// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'
|
|
@@ -2566,7 +2566,7 @@ function format$2(extensions) {
|
|
|
2566
2566
|
var extension = { format: format$2, parse: parse$2 };
|
|
2567
2567
|
|
|
2568
2568
|
const EventEmitter$1 = require$$0__default$4["default"];
|
|
2569
|
-
const https = require$$1__default
|
|
2569
|
+
const https = require$$1__default["default"];
|
|
2570
2570
|
const http = require$$2__default$1["default"];
|
|
2571
2571
|
const net = require$$3__default["default"];
|
|
2572
2572
|
const tls = require$$4__default["default"];
|
|
@@ -4838,10 +4838,10 @@ function requireResolve () {
|
|
|
4838
4838
|
hasRequiredResolve = 1;
|
|
4839
4839
|
|
|
4840
4840
|
// Dependencies
|
|
4841
|
-
var path =
|
|
4841
|
+
var path = path__default["default"];
|
|
4842
4842
|
|
|
4843
4843
|
// Load global paths
|
|
4844
|
-
var globalPaths = require$$1__default$
|
|
4844
|
+
var globalPaths = require$$1__default$1["default"].globalPaths;
|
|
4845
4845
|
|
|
4846
4846
|
// Guess at NPM's global install dir
|
|
4847
4847
|
var npmGlobalPrefix;
|
|
@@ -4931,7 +4931,7 @@ function requireResolve () {
|
|
|
4931
4931
|
}
|
|
4932
4932
|
|
|
4933
4933
|
var appRootPath$1 = function(dirname) {
|
|
4934
|
-
var path =
|
|
4934
|
+
var path = path__default["default"];
|
|
4935
4935
|
var resolve = requireResolve();
|
|
4936
4936
|
var appRootPath = resolve(dirname);
|
|
4937
4937
|
|
|
@@ -4966,7 +4966,7 @@ var xdgBasedir = {};
|
|
|
4966
4966
|
|
|
4967
4967
|
(function (exports) {
|
|
4968
4968
|
const os = require$$2__default["default"];
|
|
4969
|
-
const path =
|
|
4969
|
+
const path = path__default["default"];
|
|
4970
4970
|
|
|
4971
4971
|
const home = os.homedir();
|
|
4972
4972
|
const env = process.env;
|
|
@@ -4994,273 +4994,269 @@ var xdgBasedir = {};
|
|
|
4994
4994
|
}
|
|
4995
4995
|
} (xdgBasedir));
|
|
4996
4996
|
|
|
4997
|
-
|
|
4998
|
-
var
|
|
4997
|
+
function hasKey(obj, keys) {
|
|
4998
|
+
var o = obj;
|
|
4999
|
+
keys.slice(0, -1).forEach(function (key) {
|
|
5000
|
+
o = o[key] || {};
|
|
5001
|
+
});
|
|
4999
5002
|
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
minimist = function (args, opts) {
|
|
5004
|
-
if (!opts) opts = {};
|
|
5005
|
-
|
|
5006
|
-
var flags = { bools : {}, strings : {}, unknownFn: null };
|
|
5003
|
+
var key = keys[keys.length - 1];
|
|
5004
|
+
return key in o;
|
|
5005
|
+
}
|
|
5007
5006
|
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5007
|
+
function isNumber(x) {
|
|
5008
|
+
if (typeof x === 'number') { return true; }
|
|
5009
|
+
if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
|
|
5010
|
+
return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
|
|
5011
|
+
}
|
|
5011
5012
|
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
|
|
5016
|
-
flags.bools[key] = true;
|
|
5017
|
-
});
|
|
5018
|
-
}
|
|
5019
|
-
|
|
5020
|
-
var aliases = {};
|
|
5021
|
-
Object.keys(opts.alias || {}).forEach(function (key) {
|
|
5022
|
-
aliases[key] = [].concat(opts.alias[key]);
|
|
5023
|
-
aliases[key].forEach(function (x) {
|
|
5024
|
-
aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
|
5025
|
-
return x !== y;
|
|
5026
|
-
}));
|
|
5027
|
-
});
|
|
5028
|
-
});
|
|
5029
|
-
|
|
5030
|
-
[].concat(opts.string).filter(Boolean).forEach(function (key) {
|
|
5031
|
-
flags.strings[key] = true;
|
|
5032
|
-
if (aliases[key]) {
|
|
5033
|
-
flags.strings[aliases[key]] = true;
|
|
5034
|
-
}
|
|
5035
|
-
});
|
|
5036
|
-
|
|
5037
|
-
var defaults = opts['default'] || {};
|
|
5038
|
-
|
|
5039
|
-
var argv = { _ : [] };
|
|
5040
|
-
Object.keys(flags.bools).forEach(function (key) {
|
|
5041
|
-
setArg(key, defaults[key] === undefined ? false : defaults[key]);
|
|
5042
|
-
});
|
|
5043
|
-
|
|
5044
|
-
var notFlags = [];
|
|
5045
|
-
|
|
5046
|
-
if (args.indexOf('--') !== -1) {
|
|
5047
|
-
notFlags = args.slice(args.indexOf('--')+1);
|
|
5048
|
-
args = args.slice(0, args.indexOf('--'));
|
|
5049
|
-
}
|
|
5013
|
+
function isConstructorOrProto(obj, key) {
|
|
5014
|
+
return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
|
|
5015
|
+
}
|
|
5050
5016
|
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
flags.strings[key] || flags.bools[key] || aliases[key];
|
|
5054
|
-
}
|
|
5017
|
+
var minimist = function (args, opts) {
|
|
5018
|
+
if (!opts) { opts = {}; }
|
|
5055
5019
|
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5020
|
+
var flags = {
|
|
5021
|
+
bools: {},
|
|
5022
|
+
strings: {},
|
|
5023
|
+
unknownFn: null,
|
|
5024
|
+
};
|
|
5060
5025
|
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
setKey(argv, key.split('.'), value);
|
|
5065
|
-
|
|
5066
|
-
(aliases[key] || []).forEach(function (x) {
|
|
5067
|
-
setKey(argv, x.split('.'), value);
|
|
5068
|
-
});
|
|
5069
|
-
}
|
|
5026
|
+
if (typeof opts.unknown === 'function') {
|
|
5027
|
+
flags.unknownFn = opts.unknown;
|
|
5028
|
+
}
|
|
5070
5029
|
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|| o[key] === String.prototype) o[key] = {};
|
|
5079
|
-
if (o[key] === Array.prototype) o[key] = [];
|
|
5080
|
-
o = o[key];
|
|
5081
|
-
}
|
|
5030
|
+
if (typeof opts.boolean === 'boolean' && opts.boolean) {
|
|
5031
|
+
flags.allBools = true;
|
|
5032
|
+
} else {
|
|
5033
|
+
[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
|
|
5034
|
+
flags.bools[key] = true;
|
|
5035
|
+
});
|
|
5036
|
+
}
|
|
5082
5037
|
|
|
5083
|
-
|
|
5084
|
-
if (isConstructorOrProto(o, key)) return;
|
|
5085
|
-
if (o === Object.prototype || o === Number.prototype
|
|
5086
|
-
|| o === String.prototype) o = {};
|
|
5087
|
-
if (o === Array.prototype) o = [];
|
|
5088
|
-
if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
|
|
5089
|
-
o[key] = value;
|
|
5090
|
-
}
|
|
5091
|
-
else if (Array.isArray(o[key])) {
|
|
5092
|
-
o[key].push(value);
|
|
5093
|
-
}
|
|
5094
|
-
else {
|
|
5095
|
-
o[key] = [ o[key], value ];
|
|
5096
|
-
}
|
|
5097
|
-
}
|
|
5098
|
-
|
|
5099
|
-
function aliasIsBoolean(key) {
|
|
5100
|
-
return aliases[key].some(function (x) {
|
|
5101
|
-
return flags.bools[x];
|
|
5102
|
-
});
|
|
5103
|
-
}
|
|
5038
|
+
var aliases = {};
|
|
5104
5039
|
|
|
5105
|
-
|
|
5106
|
-
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
// 'dotall' regex modifier. See:
|
|
5111
|
-
// http://stackoverflow.com/a/1068308/13216
|
|
5112
|
-
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
5113
|
-
var key = m[1];
|
|
5114
|
-
var value = m[2];
|
|
5115
|
-
if (flags.bools[key]) {
|
|
5116
|
-
value = value !== 'false';
|
|
5117
|
-
}
|
|
5118
|
-
setArg(key, value, arg);
|
|
5119
|
-
}
|
|
5120
|
-
else if (/^--no-.+/.test(arg)) {
|
|
5121
|
-
var key = arg.match(/^--no-(.+)/)[1];
|
|
5122
|
-
setArg(key, false, arg);
|
|
5123
|
-
}
|
|
5124
|
-
else if (/^--.+/.test(arg)) {
|
|
5125
|
-
var key = arg.match(/^--(.+)/)[1];
|
|
5126
|
-
var next = args[i + 1];
|
|
5127
|
-
if (next !== undefined && !/^-/.test(next)
|
|
5128
|
-
&& !flags.bools[key]
|
|
5129
|
-
&& !flags.allBools
|
|
5130
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
5131
|
-
setArg(key, next, arg);
|
|
5132
|
-
i++;
|
|
5133
|
-
}
|
|
5134
|
-
else if (/^(true|false)$/.test(next)) {
|
|
5135
|
-
setArg(key, next === 'true', arg);
|
|
5136
|
-
i++;
|
|
5137
|
-
}
|
|
5138
|
-
else {
|
|
5139
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
5140
|
-
}
|
|
5141
|
-
}
|
|
5142
|
-
else if (/^-[^-]+/.test(arg)) {
|
|
5143
|
-
var letters = arg.slice(1,-1).split('');
|
|
5144
|
-
|
|
5145
|
-
var broken = false;
|
|
5146
|
-
for (var j = 0; j < letters.length; j++) {
|
|
5147
|
-
var next = arg.slice(j+2);
|
|
5148
|
-
|
|
5149
|
-
if (next === '-') {
|
|
5150
|
-
setArg(letters[j], next, arg);
|
|
5151
|
-
continue;
|
|
5152
|
-
}
|
|
5153
|
-
|
|
5154
|
-
if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
|
|
5155
|
-
setArg(letters[j], next.split('=')[1], arg);
|
|
5156
|
-
broken = true;
|
|
5157
|
-
break;
|
|
5158
|
-
}
|
|
5159
|
-
|
|
5160
|
-
if (/[A-Za-z]/.test(letters[j])
|
|
5161
|
-
&& /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
|
|
5162
|
-
setArg(letters[j], next, arg);
|
|
5163
|
-
broken = true;
|
|
5164
|
-
break;
|
|
5165
|
-
}
|
|
5166
|
-
|
|
5167
|
-
if (letters[j+1] && letters[j+1].match(/\W/)) {
|
|
5168
|
-
setArg(letters[j], arg.slice(j+2), arg);
|
|
5169
|
-
broken = true;
|
|
5170
|
-
break;
|
|
5171
|
-
}
|
|
5172
|
-
else {
|
|
5173
|
-
setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
|
5174
|
-
}
|
|
5175
|
-
}
|
|
5176
|
-
|
|
5177
|
-
var key = arg.slice(-1)[0];
|
|
5178
|
-
if (!broken && key !== '-') {
|
|
5179
|
-
if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
|
|
5180
|
-
&& !flags.bools[key]
|
|
5181
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
5182
|
-
setArg(key, args[i+1], arg);
|
|
5183
|
-
i++;
|
|
5184
|
-
}
|
|
5185
|
-
else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
|
|
5186
|
-
setArg(key, args[i+1] === 'true', arg);
|
|
5187
|
-
i++;
|
|
5188
|
-
}
|
|
5189
|
-
else {
|
|
5190
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
5191
|
-
}
|
|
5192
|
-
}
|
|
5193
|
-
}
|
|
5194
|
-
else {
|
|
5195
|
-
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
|
5196
|
-
argv._.push(
|
|
5197
|
-
flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
|
|
5198
|
-
);
|
|
5199
|
-
}
|
|
5200
|
-
if (opts.stopEarly) {
|
|
5201
|
-
argv._.push.apply(argv._, args.slice(i + 1));
|
|
5202
|
-
break;
|
|
5203
|
-
}
|
|
5204
|
-
}
|
|
5205
|
-
}
|
|
5206
|
-
|
|
5207
|
-
Object.keys(defaults).forEach(function (key) {
|
|
5208
|
-
if (!hasKey(argv, key.split('.'))) {
|
|
5209
|
-
setKey(argv, key.split('.'), defaults[key]);
|
|
5210
|
-
|
|
5211
|
-
(aliases[key] || []).forEach(function (x) {
|
|
5212
|
-
setKey(argv, x.split('.'), defaults[key]);
|
|
5213
|
-
});
|
|
5214
|
-
}
|
|
5215
|
-
});
|
|
5216
|
-
|
|
5217
|
-
if (opts['--']) {
|
|
5218
|
-
argv['--'] = new Array();
|
|
5219
|
-
notFlags.forEach(function(key) {
|
|
5220
|
-
argv['--'].push(key);
|
|
5221
|
-
});
|
|
5222
|
-
}
|
|
5223
|
-
else {
|
|
5224
|
-
notFlags.forEach(function(key) {
|
|
5225
|
-
argv._.push(key);
|
|
5226
|
-
});
|
|
5227
|
-
}
|
|
5040
|
+
function aliasIsBoolean(key) {
|
|
5041
|
+
return aliases[key].some(function (x) {
|
|
5042
|
+
return flags.bools[x];
|
|
5043
|
+
});
|
|
5044
|
+
}
|
|
5228
5045
|
|
|
5229
|
-
|
|
5230
|
-
|
|
5046
|
+
Object.keys(opts.alias || {}).forEach(function (key) {
|
|
5047
|
+
aliases[key] = [].concat(opts.alias[key]);
|
|
5048
|
+
aliases[key].forEach(function (x) {
|
|
5049
|
+
aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
|
5050
|
+
return x !== y;
|
|
5051
|
+
}));
|
|
5052
|
+
});
|
|
5053
|
+
});
|
|
5054
|
+
|
|
5055
|
+
[].concat(opts.string).filter(Boolean).forEach(function (key) {
|
|
5056
|
+
flags.strings[key] = true;
|
|
5057
|
+
if (aliases[key]) {
|
|
5058
|
+
[].concat(aliases[key]).forEach(function (k) {
|
|
5059
|
+
flags.strings[k] = true;
|
|
5060
|
+
});
|
|
5061
|
+
}
|
|
5062
|
+
});
|
|
5231
5063
|
|
|
5232
|
-
|
|
5233
|
-
var o = obj;
|
|
5234
|
-
keys.slice(0,-1).forEach(function (key) {
|
|
5235
|
-
o = (o[key] || {});
|
|
5236
|
-
});
|
|
5064
|
+
var defaults = opts.default || {};
|
|
5237
5065
|
|
|
5238
|
-
|
|
5239
|
-
|
|
5066
|
+
var argv = { _: [] };
|
|
5067
|
+
|
|
5068
|
+
function argDefined(key, arg) {
|
|
5069
|
+
return (flags.allBools && (/^--[^=]+$/).test(arg))
|
|
5070
|
+
|| flags.strings[key]
|
|
5071
|
+
|| flags.bools[key]
|
|
5072
|
+
|| aliases[key];
|
|
5240
5073
|
}
|
|
5241
5074
|
|
|
5242
|
-
function
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5075
|
+
function setKey(obj, keys, value) {
|
|
5076
|
+
var o = obj;
|
|
5077
|
+
for (var i = 0; i < keys.length - 1; i++) {
|
|
5078
|
+
var key = keys[i];
|
|
5079
|
+
if (isConstructorOrProto(o, key)) { return; }
|
|
5080
|
+
if (o[key] === undefined) { o[key] = {}; }
|
|
5081
|
+
if (
|
|
5082
|
+
o[key] === Object.prototype
|
|
5083
|
+
|| o[key] === Number.prototype
|
|
5084
|
+
|| o[key] === String.prototype
|
|
5085
|
+
) {
|
|
5086
|
+
o[key] = {};
|
|
5087
|
+
}
|
|
5088
|
+
if (o[key] === Array.prototype) { o[key] = []; }
|
|
5089
|
+
o = o[key];
|
|
5090
|
+
}
|
|
5091
|
+
|
|
5092
|
+
var lastKey = keys[keys.length - 1];
|
|
5093
|
+
if (isConstructorOrProto(o, lastKey)) { return; }
|
|
5094
|
+
if (
|
|
5095
|
+
o === Object.prototype
|
|
5096
|
+
|| o === Number.prototype
|
|
5097
|
+
|| o === String.prototype
|
|
5098
|
+
) {
|
|
5099
|
+
o = {};
|
|
5100
|
+
}
|
|
5101
|
+
if (o === Array.prototype) { o = []; }
|
|
5102
|
+
if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
|
|
5103
|
+
o[lastKey] = value;
|
|
5104
|
+
} else if (Array.isArray(o[lastKey])) {
|
|
5105
|
+
o[lastKey].push(value);
|
|
5106
|
+
} else {
|
|
5107
|
+
o[lastKey] = [o[lastKey], value];
|
|
5108
|
+
}
|
|
5246
5109
|
}
|
|
5247
5110
|
|
|
5111
|
+
function setArg(key, val, arg) {
|
|
5112
|
+
if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
|
5113
|
+
if (flags.unknownFn(arg) === false) { return; }
|
|
5114
|
+
}
|
|
5115
|
+
|
|
5116
|
+
var value = !flags.strings[key] && isNumber(val)
|
|
5117
|
+
? Number(val)
|
|
5118
|
+
: val;
|
|
5119
|
+
setKey(argv, key.split('.'), value);
|
|
5248
5120
|
|
|
5249
|
-
|
|
5250
|
-
|
|
5121
|
+
(aliases[key] || []).forEach(function (x) {
|
|
5122
|
+
setKey(argv, x.split('.'), value);
|
|
5123
|
+
});
|
|
5251
5124
|
}
|
|
5252
|
-
return minimist;
|
|
5253
|
-
}
|
|
5254
5125
|
|
|
5255
|
-
|
|
5126
|
+
Object.keys(flags.bools).forEach(function (key) {
|
|
5127
|
+
setArg(key, defaults[key] === undefined ? false : defaults[key]);
|
|
5128
|
+
});
|
|
5256
5129
|
|
|
5257
|
-
|
|
5258
|
-
const path = require$$1__default["default"];
|
|
5259
|
-
const appPath = appRootPath;
|
|
5260
|
-
const xdg = xdgBasedir;
|
|
5130
|
+
var notFlags = [];
|
|
5261
5131
|
|
|
5262
|
-
|
|
5263
|
-
|
|
5132
|
+
if (args.indexOf('--') !== -1) {
|
|
5133
|
+
notFlags = args.slice(args.indexOf('--') + 1);
|
|
5134
|
+
args = args.slice(0, args.indexOf('--'));
|
|
5135
|
+
}
|
|
5136
|
+
|
|
5137
|
+
for (var i = 0; i < args.length; i++) {
|
|
5138
|
+
var arg = args[i];
|
|
5139
|
+
var key;
|
|
5140
|
+
var next;
|
|
5141
|
+
|
|
5142
|
+
if ((/^--.+=/).test(arg)) {
|
|
5143
|
+
// Using [\s\S] instead of . because js doesn't support the
|
|
5144
|
+
// 'dotall' regex modifier. See:
|
|
5145
|
+
// http://stackoverflow.com/a/1068308/13216
|
|
5146
|
+
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
5147
|
+
key = m[1];
|
|
5148
|
+
var value = m[2];
|
|
5149
|
+
if (flags.bools[key]) {
|
|
5150
|
+
value = value !== 'false';
|
|
5151
|
+
}
|
|
5152
|
+
setArg(key, value, arg);
|
|
5153
|
+
} else if ((/^--no-.+/).test(arg)) {
|
|
5154
|
+
key = arg.match(/^--no-(.+)/)[1];
|
|
5155
|
+
setArg(key, false, arg);
|
|
5156
|
+
} else if ((/^--.+/).test(arg)) {
|
|
5157
|
+
key = arg.match(/^--(.+)/)[1];
|
|
5158
|
+
next = args[i + 1];
|
|
5159
|
+
if (
|
|
5160
|
+
next !== undefined
|
|
5161
|
+
&& !(/^(-|--)[^-]/).test(next)
|
|
5162
|
+
&& !flags.bools[key]
|
|
5163
|
+
&& !flags.allBools
|
|
5164
|
+
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
5165
|
+
) {
|
|
5166
|
+
setArg(key, next, arg);
|
|
5167
|
+
i += 1;
|
|
5168
|
+
} else if ((/^(true|false)$/).test(next)) {
|
|
5169
|
+
setArg(key, next === 'true', arg);
|
|
5170
|
+
i += 1;
|
|
5171
|
+
} else {
|
|
5172
|
+
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
5173
|
+
}
|
|
5174
|
+
} else if ((/^-[^-]+/).test(arg)) {
|
|
5175
|
+
var letters = arg.slice(1, -1).split('');
|
|
5176
|
+
|
|
5177
|
+
var broken = false;
|
|
5178
|
+
for (var j = 0; j < letters.length; j++) {
|
|
5179
|
+
next = arg.slice(j + 2);
|
|
5180
|
+
|
|
5181
|
+
if (next === '-') {
|
|
5182
|
+
setArg(letters[j], next, arg);
|
|
5183
|
+
continue;
|
|
5184
|
+
}
|
|
5185
|
+
|
|
5186
|
+
if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {
|
|
5187
|
+
setArg(letters[j], next.slice(1), arg);
|
|
5188
|
+
broken = true;
|
|
5189
|
+
break;
|
|
5190
|
+
}
|
|
5191
|
+
|
|
5192
|
+
if (
|
|
5193
|
+
(/[A-Za-z]/).test(letters[j])
|
|
5194
|
+
&& (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
|
|
5195
|
+
) {
|
|
5196
|
+
setArg(letters[j], next, arg);
|
|
5197
|
+
broken = true;
|
|
5198
|
+
break;
|
|
5199
|
+
}
|
|
5200
|
+
|
|
5201
|
+
if (letters[j + 1] && letters[j + 1].match(/\W/)) {
|
|
5202
|
+
setArg(letters[j], arg.slice(j + 2), arg);
|
|
5203
|
+
broken = true;
|
|
5204
|
+
break;
|
|
5205
|
+
} else {
|
|
5206
|
+
setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
|
5207
|
+
}
|
|
5208
|
+
}
|
|
5209
|
+
|
|
5210
|
+
key = arg.slice(-1)[0];
|
|
5211
|
+
if (!broken && key !== '-') {
|
|
5212
|
+
if (
|
|
5213
|
+
args[i + 1]
|
|
5214
|
+
&& !(/^(-|--)[^-]/).test(args[i + 1])
|
|
5215
|
+
&& !flags.bools[key]
|
|
5216
|
+
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
5217
|
+
) {
|
|
5218
|
+
setArg(key, args[i + 1], arg);
|
|
5219
|
+
i += 1;
|
|
5220
|
+
} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
|
|
5221
|
+
setArg(key, args[i + 1] === 'true', arg);
|
|
5222
|
+
i += 1;
|
|
5223
|
+
} else {
|
|
5224
|
+
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
5225
|
+
}
|
|
5226
|
+
}
|
|
5227
|
+
} else {
|
|
5228
|
+
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
|
5229
|
+
argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
|
|
5230
|
+
}
|
|
5231
|
+
if (opts.stopEarly) {
|
|
5232
|
+
argv._.push.apply(argv._, args.slice(i + 1));
|
|
5233
|
+
break;
|
|
5234
|
+
}
|
|
5235
|
+
}
|
|
5236
|
+
}
|
|
5237
|
+
|
|
5238
|
+
Object.keys(defaults).forEach(function (k) {
|
|
5239
|
+
if (!hasKey(argv, k.split('.'))) {
|
|
5240
|
+
setKey(argv, k.split('.'), defaults[k]);
|
|
5241
|
+
|
|
5242
|
+
(aliases[k] || []).forEach(function (x) {
|
|
5243
|
+
setKey(argv, x.split('.'), defaults[k]);
|
|
5244
|
+
});
|
|
5245
|
+
}
|
|
5246
|
+
});
|
|
5247
|
+
|
|
5248
|
+
if (opts['--']) {
|
|
5249
|
+
argv['--'] = notFlags.slice();
|
|
5250
|
+
} else {
|
|
5251
|
+
notFlags.forEach(function (k) {
|
|
5252
|
+
argv._.push(k);
|
|
5253
|
+
});
|
|
5254
|
+
}
|
|
5255
|
+
|
|
5256
|
+
return argv;
|
|
5257
|
+
};
|
|
5258
|
+
|
|
5259
|
+
function split(data) {
|
|
5264
5260
|
const pre = data.split("\n");
|
|
5265
5261
|
// rejoin with lines that starts with a whitespace
|
|
5266
5262
|
const out = [];
|
|
@@ -5279,7 +5275,8 @@ function split(data)
|
|
|
5279
5275
|
--idx;
|
|
5280
5276
|
if (idx < cur.length - 1)
|
|
5281
5277
|
cur = cur.substr(0, idx + 1);
|
|
5282
|
-
}
|
|
5278
|
+
}
|
|
5279
|
+
else if (cur.length > 0) {
|
|
5283
5280
|
out.push(cur.trim());
|
|
5284
5281
|
cur = line.trim();
|
|
5285
5282
|
}
|
|
@@ -5289,9 +5286,7 @@ function split(data)
|
|
|
5289
5286
|
}
|
|
5290
5287
|
return out;
|
|
5291
5288
|
}
|
|
5292
|
-
|
|
5293
|
-
function realValue(v)
|
|
5294
|
-
{
|
|
5289
|
+
function realValue(v) {
|
|
5295
5290
|
if (typeof v !== "string")
|
|
5296
5291
|
return v;
|
|
5297
5292
|
if (/^[-0-9.]+$/.exec(v)) {
|
|
@@ -5300,119 +5295,130 @@ function realValue(v)
|
|
|
5300
5295
|
return vf;
|
|
5301
5296
|
}
|
|
5302
5297
|
switch (v) {
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5298
|
+
case "true":
|
|
5299
|
+
return true;
|
|
5300
|
+
case "false":
|
|
5301
|
+
return false;
|
|
5307
5302
|
}
|
|
5308
5303
|
return v;
|
|
5309
5304
|
}
|
|
5310
|
-
|
|
5311
|
-
|
|
5305
|
+
class Engine {
|
|
5306
|
+
argv;
|
|
5307
|
+
prefix;
|
|
5308
|
+
additionalFiles;
|
|
5309
|
+
applicationPath;
|
|
5310
|
+
debug;
|
|
5311
|
+
options;
|
|
5312
|
+
configDirs;
|
|
5312
5313
|
constructor(options, argv) {
|
|
5313
5314
|
this.argv = Object.assign({}, argv);
|
|
5314
5315
|
this.prefix = options.prefix;
|
|
5315
5316
|
this.additionalFiles = options.additionalFiles || [];
|
|
5316
|
-
this.applicationPath = options.noApplicationPath ? "" :
|
|
5317
|
-
this.debug = options.debug;
|
|
5317
|
+
this.applicationPath = options.noApplicationPath ? "" : appRootPath.toString();
|
|
5318
|
+
this.debug = options.debug ?? false;
|
|
5318
5319
|
this.options = {};
|
|
5319
|
-
this.configDirs = this.argv["config-dir"] ||
|
|
5320
|
+
this.configDirs = this.argv["config-dir"] || options.configDirs || xdgBasedir.configDirs;
|
|
5320
5321
|
this._read();
|
|
5321
5322
|
}
|
|
5322
|
-
|
|
5323
5323
|
value(name) {
|
|
5324
5324
|
// foo-bar becomes FOO_BAR as env
|
|
5325
|
-
if (name in this.argv)
|
|
5325
|
+
if (name in this.argv) {
|
|
5326
5326
|
return this.argv[name];
|
|
5327
|
+
}
|
|
5327
5328
|
const envname = (this.prefix + "_" + name).replace(/-/g, "_").toUpperCase();
|
|
5328
|
-
if (envname in process.env)
|
|
5329
|
+
if (envname in process.env) {
|
|
5329
5330
|
return realValue(process.env[envname]);
|
|
5330
|
-
|
|
5331
|
-
if (name in this.options)
|
|
5331
|
+
}
|
|
5332
|
+
if (name in this.options) {
|
|
5332
5333
|
return this.options[name];
|
|
5334
|
+
}
|
|
5333
5335
|
return undefined;
|
|
5334
5336
|
}
|
|
5335
|
-
|
|
5337
|
+
string(name) {
|
|
5338
|
+
const ret = this.value(name);
|
|
5339
|
+
if (ret === undefined) {
|
|
5340
|
+
return undefined;
|
|
5341
|
+
}
|
|
5342
|
+
return String(ret);
|
|
5343
|
+
}
|
|
5336
5344
|
_homedir() {
|
|
5337
5345
|
let home = process.env.home;
|
|
5338
5346
|
if (home) {
|
|
5339
|
-
return
|
|
5347
|
+
return path__default["default"].join(home, ".config");
|
|
5340
5348
|
}
|
|
5341
5349
|
return undefined;
|
|
5342
5350
|
}
|
|
5343
|
-
|
|
5344
5351
|
_log(...args) {
|
|
5345
5352
|
if (this.debug)
|
|
5346
5353
|
console.log(...args);
|
|
5347
5354
|
}
|
|
5348
|
-
|
|
5349
5355
|
_read() {
|
|
5350
5356
|
// if we have a config file passed, read it
|
|
5351
|
-
let file = this.
|
|
5357
|
+
let file = this.string("config-file");
|
|
5352
5358
|
if (!file && this.prefix)
|
|
5353
5359
|
file = this.prefix + ".conf";
|
|
5354
5360
|
if (!file)
|
|
5355
5361
|
return;
|
|
5356
|
-
|
|
5357
5362
|
let data = [];
|
|
5358
5363
|
let seen = new Set();
|
|
5359
|
-
const
|
|
5360
|
-
const Success = 1;
|
|
5361
|
-
const Seen = 2;
|
|
5362
|
-
const read = file => {
|
|
5364
|
+
const read = (file) => {
|
|
5363
5365
|
if (seen.has(file))
|
|
5364
|
-
return Seen
|
|
5366
|
+
return 2 /* OptionsReadResult.Seen */;
|
|
5365
5367
|
seen.add(file);
|
|
5366
5368
|
try {
|
|
5367
|
-
const contents =
|
|
5369
|
+
const contents = require$$0__default["default"].readFileSync(file, "utf8");
|
|
5368
5370
|
this._log(`Loaded ${contents.length} bytes from ${file}`);
|
|
5369
|
-
|
|
5370
5371
|
if (contents) {
|
|
5371
|
-
data.push({ file
|
|
5372
|
-
return Success
|
|
5372
|
+
data.push({ file, contents });
|
|
5373
|
+
return 1 /* OptionsReadResult.Success */;
|
|
5373
5374
|
}
|
|
5374
|
-
}
|
|
5375
|
+
}
|
|
5376
|
+
catch (e) {
|
|
5375
5377
|
this._log(`Failed to load ${file}`);
|
|
5376
5378
|
}
|
|
5377
|
-
return Failed
|
|
5379
|
+
return 0 /* OptionsReadResult.Failed */;
|
|
5378
5380
|
};
|
|
5379
|
-
|
|
5380
5381
|
// console.log("about to read file", file, "additionalFiles", this.additionalFiles, "configDirs", this.configDirs, "applicationPath", this.applicationPath, "homedir", this._homedir());
|
|
5381
|
-
if (
|
|
5382
|
+
if (path__default["default"].isAbsolute(file)) {
|
|
5382
5383
|
read(file);
|
|
5383
|
-
}
|
|
5384
|
+
}
|
|
5385
|
+
else {
|
|
5384
5386
|
this.additionalFiles.forEach(file => {
|
|
5385
|
-
if (
|
|
5387
|
+
if (path__default["default"].isAbsolute(file) && read(file) == 0 /* OptionsReadResult.Failed */) {
|
|
5386
5388
|
read(file + ".conf");
|
|
5389
|
+
}
|
|
5387
5390
|
});
|
|
5388
5391
|
([this.applicationPath, this._homedir()].concat(this.configDirs)).forEach(root => {
|
|
5389
5392
|
// in case we appended with undefined
|
|
5390
|
-
if (!root)
|
|
5393
|
+
if (!root) {
|
|
5391
5394
|
return;
|
|
5395
|
+
}
|
|
5392
5396
|
this.additionalFiles.forEach(additional => {
|
|
5393
|
-
if (!
|
|
5394
|
-
let file =
|
|
5395
|
-
if (read(file) == Failed)
|
|
5397
|
+
if (!path__default["default"].isAbsolute(additional)) {
|
|
5398
|
+
let file = path__default["default"].join(root, additional);
|
|
5399
|
+
if (read(file) == 0 /* OptionsReadResult.Failed */)
|
|
5396
5400
|
read(file + ".conf");
|
|
5397
5401
|
}
|
|
5398
5402
|
});
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
if (read(filePath) == Failed)
|
|
5403
|
+
let filePath = path__default["default"].join(root, file);
|
|
5404
|
+
if (read(filePath) == 0 /* OptionsReadResult.Failed */) {
|
|
5402
5405
|
read(filePath + ".conf");
|
|
5406
|
+
}
|
|
5403
5407
|
});
|
|
5404
5408
|
}
|
|
5405
5409
|
for (let i = data.length - 1; i >= 0; --i) {
|
|
5406
5410
|
let str = data[i].contents;
|
|
5407
|
-
if (!str)
|
|
5411
|
+
if (!str) {
|
|
5408
5412
|
continue;
|
|
5413
|
+
}
|
|
5409
5414
|
try {
|
|
5410
5415
|
let obj = JSON.parse(str);
|
|
5411
5416
|
for (let key in obj) {
|
|
5412
5417
|
this._log(`Assigning ${JSON.stringify(obj[key])} over ${JSON.stringify(this.options[key])} for ${key} from ${data[i].file} (JSON)`);
|
|
5413
5418
|
this.options[key] = obj[key];
|
|
5414
5419
|
}
|
|
5415
|
-
}
|
|
5420
|
+
}
|
|
5421
|
+
catch (err) {
|
|
5416
5422
|
const items = split(str);
|
|
5417
5423
|
for (let j = 0; j < items.length; ++j) {
|
|
5418
5424
|
const item = items[j].trim();
|
|
@@ -5425,12 +5431,12 @@ class Options {
|
|
|
5425
5431
|
this._log("Couldn't find =", item);
|
|
5426
5432
|
continue;
|
|
5427
5433
|
}
|
|
5428
|
-
const key = item.
|
|
5434
|
+
const key = item.substring(0, eq).trim();
|
|
5429
5435
|
if (!key.length) {
|
|
5430
5436
|
this._log("empty key", item);
|
|
5431
5437
|
continue;
|
|
5432
5438
|
}
|
|
5433
|
-
const value = item.
|
|
5439
|
+
const value = item.substring(eq + 1).trim();
|
|
5434
5440
|
this._log(`Assigning ${value} over ${this.options[key]} for ${key} from ${data[i].file} (INI)`);
|
|
5435
5441
|
this.options[key] = value;
|
|
5436
5442
|
}
|
|
@@ -5438,37 +5444,34 @@ class Options {
|
|
|
5438
5444
|
}
|
|
5439
5445
|
}
|
|
5440
5446
|
}
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
if (!
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
const val = data.options.value(name);
|
|
5453
|
-
if (typeof val === "undefined")
|
|
5447
|
+
function options (optionsOptions, argv) {
|
|
5448
|
+
if (!argv) {
|
|
5449
|
+
argv = minimist(process.argv.slice(2));
|
|
5450
|
+
}
|
|
5451
|
+
if (!(optionsOptions instanceof Object)) {
|
|
5452
|
+
optionsOptions = { prefix: optionsOptions || "" };
|
|
5453
|
+
}
|
|
5454
|
+
const engine = new Engine(optionsOptions, argv);
|
|
5455
|
+
function value(name, defaultValue) {
|
|
5456
|
+
const val = engine.value(name);
|
|
5457
|
+
if (val === undefined)
|
|
5454
5458
|
return defaultValue;
|
|
5455
5459
|
return val;
|
|
5456
|
-
}
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
const v = parseInt(data.options.value(name));
|
|
5460
|
+
}
|
|
5461
|
+
function float(name, defaultValue) {
|
|
5462
|
+
const v = parseFloat(engine.string(name) || "");
|
|
5460
5463
|
if (typeof v === "number" && !isNaN(v))
|
|
5461
5464
|
return v;
|
|
5462
5465
|
return defaultValue;
|
|
5463
|
-
}
|
|
5464
|
-
|
|
5465
|
-
const v =
|
|
5466
|
+
}
|
|
5467
|
+
function int(name, defaultValue) {
|
|
5468
|
+
const v = parseInt(engine.string(name) || "");
|
|
5466
5469
|
if (typeof v === "number" && !isNaN(v))
|
|
5467
5470
|
return v;
|
|
5468
5471
|
return defaultValue;
|
|
5469
|
-
}
|
|
5470
|
-
|
|
5471
|
-
const opt =
|
|
5472
|
+
}
|
|
5473
|
+
function json(name, defaultValue) {
|
|
5474
|
+
const opt = engine.value(name);
|
|
5472
5475
|
if (opt === undefined)
|
|
5473
5476
|
return defaultValue;
|
|
5474
5477
|
if (typeof opt !== "string")
|
|
@@ -5476,12 +5479,22 @@ var options = function(options, argv) {
|
|
|
5476
5479
|
try {
|
|
5477
5480
|
const json = JSON.parse(opt);
|
|
5478
5481
|
return json;
|
|
5479
|
-
}
|
|
5482
|
+
}
|
|
5483
|
+
catch (e) {
|
|
5480
5484
|
}
|
|
5481
5485
|
return defaultValue;
|
|
5482
|
-
}
|
|
5483
|
-
|
|
5484
|
-
|
|
5486
|
+
}
|
|
5487
|
+
function string(name, defaultValue) {
|
|
5488
|
+
return engine.string(name) ?? defaultValue;
|
|
5489
|
+
}
|
|
5490
|
+
return Object.assign(value, {
|
|
5491
|
+
prefix: optionsOptions.prefix,
|
|
5492
|
+
float,
|
|
5493
|
+
int,
|
|
5494
|
+
json,
|
|
5495
|
+
string,
|
|
5496
|
+
});
|
|
5497
|
+
}
|
|
5485
5498
|
|
|
5486
5499
|
const option = options({
|
|
5487
5500
|
prefix: "fisk/monitor",
|