navy 4.1.2-rc.2 → 5.0.0
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/lib/cli/config/index.js +57 -241
- package/lib/cli/config/wrapper.js +12 -36
- package/lib/cli/develop.js +63 -167
- package/lib/cli/doctor/clean-compose-files.js +19 -73
- package/lib/cli/doctor/index.js +34 -154
- package/lib/cli/doctor/invalid-compose-config.js +20 -110
- package/lib/cli/doctor/invalid-state.js +22 -115
- package/lib/cli/doctor/util.js +26 -93
- package/lib/cli/external-ip.js +9 -39
- package/lib/cli/health.js +18 -67
- package/lib/cli/https.js +92 -0
- package/lib/cli/import.js +22 -59
- package/lib/cli/index.js +11 -17
- package/lib/cli/lan-ip.js +18 -60
- package/lib/cli/launch.js +46 -127
- package/lib/cli/live.js +37 -111
- package/lib/cli/local-ip.js +16 -53
- package/lib/cli/logs.js +7 -35
- package/lib/cli/open.js +11 -45
- package/lib/cli/program.js +145 -167
- package/lib/cli/ps.js +36 -105
- package/lib/cli/refresh-config.js +18 -62
- package/lib/cli/run.js +8 -39
- package/lib/cli/status.js +41 -201
- package/lib/cli/updates.js +68 -160
- package/lib/cli/util/get-or-initialise-navy.js +14 -57
- package/lib/cli/util/import.js +33 -83
- package/lib/cli/util/index.js +10 -12
- package/lib/cli/util/reconfigure.js +12 -102
- package/lib/cli/wait-for-healthy.js +53 -100
- package/lib/config-provider.js +25 -127
- package/lib/config-providers/filesystem/index.js +58 -235
- package/lib/config-providers/npm/__tests__/util.js +3 -6
- package/lib/config-providers/npm/index.js +60 -231
- package/lib/config-providers/npm/util.js +6 -9
- package/lib/config.js +39 -76
- package/lib/driver-logging.js +23 -28
- package/lib/driver.js +5 -7
- package/lib/drivers/docker-compose/client.js +64 -172
- package/lib/drivers/docker-compose/index.js +153 -464
- package/lib/errors.js +27 -61
- package/lib/http-proxy.js +72 -158
- package/lib/index.js +26 -29
- package/lib/middleware/add-service-proxy-config.js +76 -0
- package/lib/middleware/develop.js +9 -23
- package/lib/middleware/helpers.js +20 -25
- package/lib/middleware/port-override.js +15 -37
- package/lib/middleware/set-env-vars.js +14 -18
- package/lib/middleware/set-image.js +12 -18
- package/lib/middleware/set-logging-driver.js +14 -18
- package/lib/middleware/tag-override.js +11 -19
- package/lib/navy/default-middleware.js +13 -27
- package/lib/navy/index.js +438 -1761
- package/lib/navy/middleware.js +15 -100
- package/lib/navy/plugin-interface.js +28 -108
- package/lib/navy/state.js +58 -147
- package/lib/navy/util.js +2 -1
- package/lib/service.js +5 -3
- package/lib/util/__tests__/external-ip.js +20 -96
- package/lib/util/__tests__/registry-client.js +11 -24
- package/lib/util/__tests__/service-host.js +19 -116
- package/lib/util/docker-client.js +10 -13
- package/lib/util/exec-async.js +9 -27
- package/lib/util/external-ip.js +48 -126
- package/lib/util/fs.js +7 -6
- package/lib/util/get-lan-ip.js +15 -52
- package/lib/util/has-update.js +23 -73
- package/lib/util/https.js +213 -0
- package/lib/util/navyrc.js +12 -50
- package/lib/util/registry-client.js +41 -112
- package/lib/util/service-host.js +40 -129
- package/lib/util/table.js +11 -21
- package/package.json +14 -14
- package/LICENSE +0 -21
- package/lib/middleware/add-virtual-hosts.js +0 -147
|
@@ -1,67 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
4
|
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.getOrInitialiseNavy =
|
|
7
|
-
|
|
8
|
-
var _regenerator = require('babel-runtime/regenerator');
|
|
9
|
-
|
|
10
|
-
var _regenerator2 = _interopRequireDefault(_regenerator);
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
13
|
-
|
|
14
|
-
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
|
15
|
-
|
|
16
|
-
var getOrInitialiseNavy = exports.getOrInitialiseNavy = function () {
|
|
17
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(navyName) {
|
|
18
|
-
var navy;
|
|
19
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
20
|
-
while (1) {
|
|
21
|
-
switch (_context.prev = _context.next) {
|
|
22
|
-
case 0:
|
|
23
|
-
navy = (0, _.getNavy)(navyName);
|
|
24
|
-
_context.next = 3;
|
|
25
|
-
return navy.isInitialised();
|
|
26
|
-
|
|
27
|
-
case 3:
|
|
28
|
-
if (_context.sent) {
|
|
29
|
-
_context.next = 11;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
_context.t0 = _import.importNavy;
|
|
34
|
-
_context.t1 = navy;
|
|
35
|
-
_context.next = 8;
|
|
36
|
-
return _filesystem2.default.getImportOptionsForCLI({});
|
|
37
|
-
|
|
38
|
-
case 8:
|
|
39
|
-
_context.t2 = _context.sent;
|
|
40
|
-
_context.next = 11;
|
|
41
|
-
return (0, _context.t0)(_context.t1, _context.t2);
|
|
42
|
-
|
|
43
|
-
case 11:
|
|
44
|
-
return _context.abrupt('return', navy);
|
|
45
|
-
|
|
46
|
-
case 12:
|
|
47
|
-
case 'end':
|
|
48
|
-
return _context.stop();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}, _callee, this);
|
|
52
|
-
}));
|
|
8
|
+
exports.getOrInitialiseNavy = getOrInitialiseNavy;
|
|
53
9
|
|
|
54
|
-
|
|
55
|
-
return _ref.apply(this, arguments);
|
|
56
|
-
};
|
|
57
|
-
}();
|
|
10
|
+
var _ = require("../../");
|
|
58
11
|
|
|
59
|
-
var
|
|
12
|
+
var _import = require("./import");
|
|
60
13
|
|
|
61
|
-
var
|
|
14
|
+
var _filesystem = _interopRequireDefault(require("../../config-providers/filesystem"));
|
|
62
15
|
|
|
63
|
-
|
|
16
|
+
async function getOrInitialiseNavy(navyName) {
|
|
17
|
+
const navy = (0, _.getNavy)(navyName);
|
|
64
18
|
|
|
65
|
-
|
|
19
|
+
if (!(await navy.isInitialised())) {
|
|
20
|
+
await (0, _import.importNavy)(navy, await _filesystem.default.getImportOptionsForCLI({}));
|
|
21
|
+
}
|
|
66
22
|
|
|
67
|
-
|
|
23
|
+
return navy;
|
|
24
|
+
}
|
package/lib/cli/util/import.js
CHANGED
|
@@ -1,94 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
4
|
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.importNavy =
|
|
7
|
-
|
|
8
|
-
var _regenerator = require('babel-runtime/regenerator');
|
|
9
|
-
|
|
10
|
-
var _regenerator2 = _interopRequireDefault(_regenerator);
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
13
|
-
|
|
14
|
-
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
|
15
|
-
|
|
16
|
-
var importNavy = exports.importNavy = function () {
|
|
17
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(navy, initialiseOpts) {
|
|
18
|
-
var key;
|
|
19
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
20
|
-
while (1) {
|
|
21
|
-
switch (_context.prev = _context.next) {
|
|
22
|
-
case 0:
|
|
23
|
-
_context.next = 2;
|
|
24
|
-
return navy.isInitialised();
|
|
25
|
-
|
|
26
|
-
case 2:
|
|
27
|
-
if (!_context.sent) {
|
|
28
|
-
_context.next = 4;
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
throw new _errors.NavyError('Navy "' + navy.name + '" has already been imported and initialised.');
|
|
33
|
-
|
|
34
|
-
case 4:
|
|
35
|
-
_context.next = 6;
|
|
36
|
-
return navy.initialise(initialiseOpts);
|
|
37
|
-
|
|
38
|
-
case 6:
|
|
39
|
-
_context.next = 8;
|
|
40
|
-
return navy.ensurePluginsLoaded();
|
|
41
|
-
|
|
42
|
-
case 8:
|
|
43
|
-
_context.next = 10;
|
|
44
|
-
return navy.emitAsync('cli.import');
|
|
45
|
-
|
|
46
|
-
case 10:
|
|
47
|
-
|
|
48
|
-
(0, _driverLogging.startDriverLogging)('Ensuring services are up to date...');
|
|
49
|
-
_context.next = 13;
|
|
50
|
-
return navy.relaunch();
|
|
51
|
-
|
|
52
|
-
case 13:
|
|
53
|
-
(0, _driverLogging.stopDriverLogging)();
|
|
54
|
-
|
|
55
|
-
console.log();
|
|
56
|
-
console.log(_chalk2.default.green(' Navy "' + _chalk2.default.white.bold(navy.name) + '" has now been imported and initialised. \uD83C\uDF89'));
|
|
57
|
-
console.log();
|
|
58
|
-
|
|
59
|
-
for (key in initialiseOpts) {
|
|
60
|
-
if (OPTION_LABEL_MAP[key]) {
|
|
61
|
-
console.log(' ' + _chalk2.default.bold(OPTION_LABEL_MAP[key]) + ': ' + _chalk2.default.dim(initialiseOpts[key]));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
console.log();
|
|
66
|
-
|
|
67
|
-
case 19:
|
|
68
|
-
case 'end':
|
|
69
|
-
return _context.stop();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}, _callee, this);
|
|
73
|
-
}));
|
|
74
|
-
|
|
75
|
-
return function importNavy(_x, _x2) {
|
|
76
|
-
return _ref.apply(this, arguments);
|
|
77
|
-
};
|
|
78
|
-
}();
|
|
79
|
-
|
|
80
|
-
var _chalk = require('chalk');
|
|
81
|
-
|
|
82
|
-
var _chalk2 = _interopRequireDefault(_chalk);
|
|
8
|
+
exports.importNavy = importNavy;
|
|
83
9
|
|
|
84
|
-
var
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
85
11
|
|
|
86
|
-
var
|
|
12
|
+
var _driverLogging = require("../../driver-logging");
|
|
87
13
|
|
|
88
|
-
|
|
14
|
+
var _errors = require("../../errors");
|
|
89
15
|
|
|
90
|
-
|
|
16
|
+
const OPTION_LABEL_MAP = {
|
|
91
17
|
configProvider: 'Provider',
|
|
92
18
|
path: 'Directory',
|
|
93
19
|
npmPackage: 'NPM Package'
|
|
94
|
-
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
async function importNavy(navy, initialiseOpts) {
|
|
23
|
+
if (await navy.isInitialised()) {
|
|
24
|
+
throw new _errors.NavyError(`Navy "${navy.name}" has already been imported and initialised.`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
await navy.initialise(initialiseOpts);
|
|
28
|
+
await navy.ensurePluginsLoaded();
|
|
29
|
+
await navy.emitAsync('cli.import');
|
|
30
|
+
(0, _driverLogging.startDriverLogging)('Ensuring services are up to date...');
|
|
31
|
+
await navy.relaunch();
|
|
32
|
+
(0, _driverLogging.stopDriverLogging)();
|
|
33
|
+
console.log();
|
|
34
|
+
console.log(_chalk.default.green(` Navy "${_chalk.default.white.bold(navy.name)}" has now been imported and initialised. 🎉`));
|
|
35
|
+
console.log();
|
|
36
|
+
|
|
37
|
+
for (const key in initialiseOpts) {
|
|
38
|
+
if (OPTION_LABEL_MAP[key]) {
|
|
39
|
+
console.log(` ${_chalk.default.bold(OPTION_LABEL_MAP[key])}: ${_chalk.default.dim(initialiseOpts[key])}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
package/lib/cli/util/index.js
CHANGED
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var _getOrInitialiseNavy = require('./get-or-initialise-navy');
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, 'getOrInitialiseNavy', {
|
|
6
|
+
Object.defineProperty(exports, "getOrInitialiseNavy", {
|
|
10
7
|
enumerable: true,
|
|
11
|
-
get: function
|
|
8
|
+
get: function () {
|
|
12
9
|
return _getOrInitialiseNavy.getOrInitialiseNavy;
|
|
13
10
|
}
|
|
14
11
|
});
|
|
15
|
-
|
|
16
|
-
var _import = require('./import');
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, 'importNavy', {
|
|
12
|
+
Object.defineProperty(exports, "importNavy", {
|
|
19
13
|
enumerable: true,
|
|
20
|
-
get: function
|
|
14
|
+
get: function () {
|
|
21
15
|
return _import.importNavy;
|
|
22
16
|
}
|
|
23
|
-
});
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _getOrInitialiseNavy = require("./get-or-initialise-navy");
|
|
20
|
+
|
|
21
|
+
var _import = require("./import");
|
|
@@ -1,110 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.reconfigureAllNavies =
|
|
6
|
+
exports.reconfigureAllNavies = reconfigureAllNavies;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _ = require("../../");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _driverLogging = require("../../driver-logging");
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
async function reconfigureAllNavies() {
|
|
13
|
+
const navies = await (0, _.getLaunchedNavies)();
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var reconfigureAllNavies = exports.reconfigureAllNavies = function () {
|
|
21
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
|
|
22
|
-
var navies, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, navy;
|
|
23
|
-
|
|
24
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
25
|
-
while (1) {
|
|
26
|
-
switch (_context.prev = _context.next) {
|
|
27
|
-
case 0:
|
|
28
|
-
_context.next = 2;
|
|
29
|
-
return (0, _.getLaunchedNavies)();
|
|
30
|
-
|
|
31
|
-
case 2:
|
|
32
|
-
navies = _context.sent;
|
|
33
|
-
_iteratorNormalCompletion = true;
|
|
34
|
-
_didIteratorError = false;
|
|
35
|
-
_iteratorError = undefined;
|
|
36
|
-
_context.prev = 6;
|
|
37
|
-
_iterator = (0, _getIterator3.default)(navies);
|
|
38
|
-
|
|
39
|
-
case 8:
|
|
40
|
-
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
41
|
-
_context.next = 17;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
navy = _step.value;
|
|
46
|
-
|
|
47
|
-
(0, _driverLogging.startDriverLogging)('Reconfiguring ' + navy.name);
|
|
48
|
-
_context.next = 13;
|
|
49
|
-
return navy.reconfigure();
|
|
50
|
-
|
|
51
|
-
case 13:
|
|
52
|
-
(0, _driverLogging.stopDriverLogging)();
|
|
53
|
-
|
|
54
|
-
case 14:
|
|
55
|
-
_iteratorNormalCompletion = true;
|
|
56
|
-
_context.next = 8;
|
|
57
|
-
break;
|
|
58
|
-
|
|
59
|
-
case 17:
|
|
60
|
-
_context.next = 23;
|
|
61
|
-
break;
|
|
62
|
-
|
|
63
|
-
case 19:
|
|
64
|
-
_context.prev = 19;
|
|
65
|
-
_context.t0 = _context['catch'](6);
|
|
66
|
-
_didIteratorError = true;
|
|
67
|
-
_iteratorError = _context.t0;
|
|
68
|
-
|
|
69
|
-
case 23:
|
|
70
|
-
_context.prev = 23;
|
|
71
|
-
_context.prev = 24;
|
|
72
|
-
|
|
73
|
-
if (!_iteratorNormalCompletion && _iterator.return) {
|
|
74
|
-
_iterator.return();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
case 26:
|
|
78
|
-
_context.prev = 26;
|
|
79
|
-
|
|
80
|
-
if (!_didIteratorError) {
|
|
81
|
-
_context.next = 29;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
throw _iteratorError;
|
|
86
|
-
|
|
87
|
-
case 29:
|
|
88
|
-
return _context.finish(26);
|
|
89
|
-
|
|
90
|
-
case 30:
|
|
91
|
-
return _context.finish(23);
|
|
92
|
-
|
|
93
|
-
case 31:
|
|
94
|
-
case 'end':
|
|
95
|
-
return _context.stop();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}, _callee, this, [[6, 19, 23, 31], [24,, 26, 30]]);
|
|
99
|
-
}));
|
|
100
|
-
|
|
101
|
-
return function reconfigureAllNavies() {
|
|
102
|
-
return _ref.apply(this, arguments);
|
|
103
|
-
};
|
|
104
|
-
}();
|
|
105
|
-
|
|
106
|
-
var _ = require('../../');
|
|
107
|
-
|
|
108
|
-
var _driverLogging = require('../../driver-logging');
|
|
109
|
-
|
|
110
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
for (const navy of navies) {
|
|
16
|
+
(0, _driverLogging.startDriverLogging)('Reconfiguring ' + navy.name);
|
|
17
|
+
await navy.reconfigure();
|
|
18
|
+
(0, _driverLogging.stopDriverLogging)();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,125 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
4
|
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
8
|
+
exports.default = _default;
|
|
6
9
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var _regenerator2 = _interopRequireDefault(_regenerator);
|
|
10
|
-
|
|
11
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
12
|
-
|
|
13
|
-
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
|
14
|
-
|
|
15
|
-
var _chalk = require('chalk');
|
|
16
|
-
|
|
17
|
-
var _chalk2 = _interopRequireDefault(_chalk);
|
|
18
|
-
|
|
19
|
-
var _readline = require('readline');
|
|
20
|
-
|
|
21
|
-
var _readline2 = _interopRequireDefault(_readline);
|
|
22
|
-
|
|
23
|
-
var _cliSpinners = require('cli-spinners');
|
|
24
|
-
|
|
25
|
-
var _ = require('../');
|
|
26
|
-
|
|
27
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
|
-
|
|
29
|
-
var spinnerIndex = 0;
|
|
30
|
-
var spinnerFrame = _cliSpinners.dots.frames[0];
|
|
31
|
-
|
|
32
|
-
exports.default = function () {
|
|
33
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(services, opts) {
|
|
34
|
-
var navy, servicesToCheck, healthyStatus, drawnLines, draw, redraw, spinner;
|
|
35
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
36
|
-
while (1) {
|
|
37
|
-
switch (_context.prev = _context.next) {
|
|
38
|
-
case 0:
|
|
39
|
-
redraw = function redraw() {
|
|
40
|
-
_readline2.default.clearLine(process.stdout, 0);
|
|
41
|
-
_readline2.default.cursorTo(process.stdout, 0);
|
|
42
|
-
|
|
43
|
-
for (var i = 0; i < drawnLines; i++) {
|
|
44
|
-
_readline2.default.moveCursor(process.stdout, 0, -1);
|
|
45
|
-
_readline2.default.clearLine(process.stdout, 0);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
draw();
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
draw = function draw() {
|
|
52
|
-
drawnLines = 0;
|
|
53
|
-
|
|
54
|
-
if (healthyStatus.length === 0) {
|
|
55
|
-
console.log('Waiting');
|
|
56
|
-
drawnLines = 1;
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
59
11
|
|
|
60
|
-
|
|
61
|
-
return (service.health !== 'healthy' ? _chalk2.default.yellow(spinnerFrame) : _chalk2.default.green('✔')) + ' ' + service.service;
|
|
62
|
-
});
|
|
12
|
+
var _readline = _interopRequireDefault(require("readline"));
|
|
63
13
|
|
|
64
|
-
|
|
65
|
-
console.log(lines.join('\n'));
|
|
66
|
-
};
|
|
14
|
+
var _cliSpinners = require("cli-spinners");
|
|
67
15
|
|
|
68
|
-
|
|
69
|
-
servicesToCheck = services.length === 0 ? undefined : services;
|
|
16
|
+
var _ = require("../");
|
|
70
17
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
18
|
+
let spinnerIndex = 0;
|
|
19
|
+
let spinnerFrame = _cliSpinners.dots.frames[0];
|
|
75
20
|
|
|
76
|
-
|
|
77
|
-
|
|
21
|
+
async function _default(services, opts) {
|
|
22
|
+
const navy = (0, _.getNavy)(opts.navy);
|
|
23
|
+
const servicesToCheck = services.length === 0 ? undefined : services;
|
|
78
24
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
25
|
+
if (!process.stdout.isTTY) {
|
|
26
|
+
await navy.waitForHealthy(servicesToCheck);
|
|
27
|
+
console.log('Now available');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
82
30
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
drawnLines = 0;
|
|
86
|
-
spinner = setInterval(function () {
|
|
87
|
-
spinnerIndex++;
|
|
31
|
+
let healthyStatus = [];
|
|
32
|
+
let drawnLines = 0;
|
|
88
33
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
34
|
+
function draw() {
|
|
35
|
+
drawnLines = 0;
|
|
92
36
|
|
|
93
|
-
|
|
37
|
+
if (healthyStatus.length === 0) {
|
|
38
|
+
console.log('Waiting');
|
|
39
|
+
drawnLines = 1;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
94
42
|
|
|
95
|
-
|
|
96
|
-
|
|
43
|
+
const lines = healthyStatus.map(service => `${service.health !== 'healthy' ? _chalk.default.yellow(spinnerFrame) : _chalk.default.green('✔')} ${service.service}`);
|
|
44
|
+
drawnLines = lines.length;
|
|
45
|
+
console.log(lines.join('\n'));
|
|
46
|
+
}
|
|
97
47
|
|
|
48
|
+
function redraw() {
|
|
49
|
+
_readline.default.clearLine(process.stdout, 0);
|
|
98
50
|
|
|
99
|
-
|
|
51
|
+
_readline.default.cursorTo(process.stdout, 0);
|
|
100
52
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return healthyStatus = servicesHealth;
|
|
104
|
-
});
|
|
53
|
+
for (let i = 0; i < drawnLines; i++) {
|
|
54
|
+
_readline.default.moveCursor(process.stdout, 0, -1);
|
|
105
55
|
|
|
106
|
-
|
|
56
|
+
_readline.default.clearLine(process.stdout, 0);
|
|
57
|
+
}
|
|
107
58
|
|
|
108
|
-
|
|
59
|
+
draw();
|
|
60
|
+
}
|
|
109
61
|
|
|
110
|
-
|
|
62
|
+
const spinner = setInterval(() => {
|
|
63
|
+
spinnerIndex++;
|
|
111
64
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}, _callee, this);
|
|
118
|
-
}));
|
|
65
|
+
if (spinnerIndex >= _cliSpinners.dots.frames.length) {
|
|
66
|
+
spinnerIndex = 0;
|
|
67
|
+
}
|
|
119
68
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
};
|
|
123
|
-
|
|
69
|
+
spinnerFrame = _cliSpinners.dots.frames[spinnerIndex];
|
|
70
|
+
redraw();
|
|
71
|
+
}, _cliSpinners.dots.interval);
|
|
72
|
+
draw();
|
|
73
|
+
await navy.waitForHealthy(servicesToCheck, servicesHealth => healthyStatus = servicesHealth);
|
|
74
|
+
redraw();
|
|
75
|
+
clearInterval(spinner);
|
|
76
|
+
}
|
|
124
77
|
|
|
125
78
|
module.exports = exports.default;
|