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
package/lib/cli/doctor/util.js
CHANGED
|
@@ -1,108 +1,41 @@
|
|
|
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.
|
|
7
|
-
|
|
8
|
-
var _regenerator = require('babel-runtime/regenerator');
|
|
9
|
-
|
|
10
|
-
var _regenerator2 = _interopRequireDefault(_regenerator);
|
|
11
|
-
|
|
12
|
-
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
13
|
-
|
|
14
|
-
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
15
|
-
|
|
16
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
8
|
+
exports.start = exports.fix = exports.catchInvariant = void 0;
|
|
17
9
|
|
|
18
|
-
var
|
|
10
|
+
var _util = _interopRequireDefault(require("util"));
|
|
19
11
|
|
|
20
|
-
var
|
|
12
|
+
var _invariant = _interopRequireDefault(require("invariant"));
|
|
21
13
|
|
|
22
|
-
var
|
|
14
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
23
15
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
const fix = async (message, ...params) => {
|
|
17
|
+
(0, _invariant.default)(params.length > 0, "DOCTOR_FIX_NO_PARAMS: Expected params to be passed to doctor fix");
|
|
18
|
+
const fixCallback = params[params.length - 1];
|
|
19
|
+
console.log(_chalk.default.yellow('----->', _util.default.format(message, ...params.slice(0, -1))));
|
|
20
|
+
await fixCallback();
|
|
21
|
+
};
|
|
27
22
|
|
|
28
|
-
|
|
23
|
+
exports.fix = fix;
|
|
29
24
|
|
|
30
|
-
|
|
25
|
+
const start = message => {
|
|
26
|
+
console.log(_chalk.default.dim('----->', message));
|
|
27
|
+
};
|
|
31
28
|
|
|
32
|
-
|
|
29
|
+
exports.start = start;
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
const catchInvariant = async (code, fn, catchCallback) => {
|
|
32
|
+
try {
|
|
33
|
+
await fn();
|
|
34
|
+
} catch (ex) {
|
|
35
|
+
if (ex.name === 'Invariant Violation' && ex.message.indexOf(code) === 0) {
|
|
36
|
+
await catchCallback();
|
|
38
37
|
}
|
|
39
|
-
|
|
40
|
-
var fixCallback;
|
|
41
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
42
|
-
while (1) {
|
|
43
|
-
switch (_context.prev = _context.next) {
|
|
44
|
-
case 0:
|
|
45
|
-
(0, _invariant2.default)(params.length > 0, 'DOCTOR_FIX_NO_PARAMS: Expected params to be passed to doctor fix');
|
|
46
|
-
|
|
47
|
-
fixCallback = params[params.length - 1];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
console.log(_chalk2.default.yellow('----->', _util2.default.format.apply(_util2.default, [message].concat((0, _toConsumableArray3.default)(params.slice(0, -1))))));
|
|
51
|
-
_context.next = 5;
|
|
52
|
-
return fixCallback();
|
|
53
|
-
|
|
54
|
-
case 5:
|
|
55
|
-
case 'end':
|
|
56
|
-
return _context.stop();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}, _callee, undefined);
|
|
60
|
-
}));
|
|
61
|
-
|
|
62
|
-
return function fix(_x) {
|
|
63
|
-
return _ref.apply(this, arguments);
|
|
64
|
-
};
|
|
65
|
-
}();
|
|
66
|
-
|
|
67
|
-
var start = exports.start = function start(message) {
|
|
68
|
-
console.log(_chalk2.default.dim('----->', message));
|
|
38
|
+
}
|
|
69
39
|
};
|
|
70
40
|
|
|
71
|
-
|
|
72
|
-
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(code, fn, catchCallback) {
|
|
73
|
-
return _regenerator2.default.wrap(function _callee2$(_context2) {
|
|
74
|
-
while (1) {
|
|
75
|
-
switch (_context2.prev = _context2.next) {
|
|
76
|
-
case 0:
|
|
77
|
-
_context2.prev = 0;
|
|
78
|
-
_context2.next = 3;
|
|
79
|
-
return fn();
|
|
80
|
-
|
|
81
|
-
case 3:
|
|
82
|
-
_context2.next = 10;
|
|
83
|
-
break;
|
|
84
|
-
|
|
85
|
-
case 5:
|
|
86
|
-
_context2.prev = 5;
|
|
87
|
-
_context2.t0 = _context2['catch'](0);
|
|
88
|
-
|
|
89
|
-
if (!(_context2.t0.name === 'Invariant Violation' && _context2.t0.message.indexOf(code) === 0)) {
|
|
90
|
-
_context2.next = 10;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
_context2.next = 10;
|
|
95
|
-
return catchCallback();
|
|
96
|
-
|
|
97
|
-
case 10:
|
|
98
|
-
case 'end':
|
|
99
|
-
return _context2.stop();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}, _callee2, undefined, [[0, 5]]);
|
|
103
|
-
}));
|
|
104
|
-
|
|
105
|
-
return function catchInvariant(_x2, _x3, _x4) {
|
|
106
|
-
return _ref2.apply(this, arguments);
|
|
107
|
-
};
|
|
108
|
-
}();
|
|
41
|
+
exports.catchInvariant = catchInvariant;
|
package/lib/cli/external-ip.js
CHANGED
|
@@ -1,48 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
+
var _config = require("../config");
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
+
var _externalIp = require("../util/external-ip");
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
+
var _default = async () => {
|
|
13
|
+
const config = await (0, _config.getConfig)();
|
|
14
|
+
console.log(await (0, _externalIp.getExternalIP)(config.externalIP));
|
|
15
|
+
};
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _config = require('../config');
|
|
16
|
-
|
|
17
|
-
var _externalIp = require('../util/external-ip');
|
|
18
|
-
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
-
|
|
21
|
-
exports.default = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
|
|
22
|
-
var config;
|
|
23
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
24
|
-
while (1) {
|
|
25
|
-
switch (_context.prev = _context.next) {
|
|
26
|
-
case 0:
|
|
27
|
-
_context.next = 2;
|
|
28
|
-
return (0, _config.getConfig)();
|
|
29
|
-
|
|
30
|
-
case 2:
|
|
31
|
-
config = _context.sent;
|
|
32
|
-
_context.t0 = console;
|
|
33
|
-
_context.next = 6;
|
|
34
|
-
return (0, _externalIp.getExternalIP)(config.externalIP);
|
|
35
|
-
|
|
36
|
-
case 6:
|
|
37
|
-
_context.t1 = _context.sent;
|
|
38
|
-
|
|
39
|
-
_context.t0.log.call(_context.t0, _context.t1);
|
|
40
|
-
|
|
41
|
-
case 8:
|
|
42
|
-
case 'end':
|
|
43
|
-
return _context.stop();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}, _callee, undefined);
|
|
47
|
-
}));
|
|
17
|
+
exports.default = _default;
|
|
48
18
|
module.exports = exports.default;
|
package/lib/cli/health.js
CHANGED
|
@@ -1,94 +1,45 @@
|
|
|
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 _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
12
|
-
|
|
13
|
-
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
14
|
-
|
|
15
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
16
|
-
|
|
17
|
-
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
|
18
|
-
|
|
19
|
-
var _chalk = require('chalk');
|
|
20
|
-
|
|
21
|
-
var _chalk2 = _interopRequireDefault(_chalk);
|
|
22
|
-
|
|
23
|
-
var _ = require('../');
|
|
24
|
-
|
|
25
|
-
var _table = require('../util/table');
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
26
11
|
|
|
27
|
-
var
|
|
12
|
+
var _ = require("../");
|
|
28
13
|
|
|
29
|
-
|
|
14
|
+
var _table = _interopRequireDefault(require("../util/table"));
|
|
30
15
|
|
|
31
16
|
function getStatus(service, state) {
|
|
32
|
-
|
|
17
|
+
const health = service.raw && service.raw.State.Health;
|
|
33
18
|
|
|
34
19
|
if (!health) {
|
|
35
20
|
return '-';
|
|
36
21
|
}
|
|
37
22
|
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
const statusString = health.Status === 'healthy' ? _chalk.default.green('✔ Healthy') : _chalk.default.red('• Unhealthy');
|
|
40
24
|
return statusString;
|
|
41
25
|
}
|
|
42
26
|
|
|
43
27
|
function getHistory(service, state) {
|
|
44
|
-
|
|
28
|
+
const health = service.raw && service.raw.State.Health;
|
|
45
29
|
|
|
46
30
|
if (!health) {
|
|
47
31
|
return '-';
|
|
48
32
|
}
|
|
49
33
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return history.map(function (record) {
|
|
53
|
-
return record.ExitCode === 0 ? _chalk2.default.green('█') : _chalk2.default.red('x');
|
|
54
|
-
}).join(' ');
|
|
34
|
+
const history = health.Log;
|
|
35
|
+
return history.map(record => record.ExitCode === 0 ? _chalk.default.green('█') : _chalk.default.red('x')).join(' ');
|
|
55
36
|
}
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
case 0:
|
|
64
|
-
navy = (0, _.getNavy)(opts.navy);
|
|
65
|
-
_context.next = 3;
|
|
66
|
-
return navy.ps();
|
|
67
|
-
|
|
68
|
-
case 3:
|
|
69
|
-
ps = _context.sent;
|
|
70
|
-
_context.next = 6;
|
|
71
|
-
return navy.getState();
|
|
72
|
-
|
|
73
|
-
case 6:
|
|
74
|
-
state = _context.sent;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
console.log((0, _table2.default)([['NAME', 'STATUS', 'HISTORY']].concat((0, _toConsumableArray3.default)(ps.map(function (service) {
|
|
78
|
-
return [service.name, getStatus(service, state), getHistory(service, state)];
|
|
79
|
-
})))));
|
|
80
|
-
|
|
81
|
-
case 8:
|
|
82
|
-
case 'end':
|
|
83
|
-
return _context.stop();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}, _callee, this);
|
|
87
|
-
}));
|
|
88
|
-
|
|
89
|
-
return function (_x) {
|
|
90
|
-
return _ref.apply(this, arguments);
|
|
91
|
-
};
|
|
92
|
-
}();
|
|
38
|
+
async function _default(opts) {
|
|
39
|
+
const navy = (0, _.getNavy)(opts.navy);
|
|
40
|
+
const ps = await navy.ps();
|
|
41
|
+
const state = await navy.getState();
|
|
42
|
+
console.log((0, _table.default)([['NAME', 'STATUS', 'HISTORY'], ...ps.map(service => [service.name, getStatus(service, state), getHistory(service, state)])]));
|
|
43
|
+
}
|
|
93
44
|
|
|
94
45
|
module.exports = exports.default;
|
package/lib/cli/https.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = _default;
|
|
9
|
+
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
11
|
+
|
|
12
|
+
var _errors = require("../errors");
|
|
13
|
+
|
|
14
|
+
var _navy = require("../navy");
|
|
15
|
+
|
|
16
|
+
var _config = require("../config");
|
|
17
|
+
|
|
18
|
+
var _httpProxy = require("../http-proxy");
|
|
19
|
+
|
|
20
|
+
var _https = require("../util/https");
|
|
21
|
+
|
|
22
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
23
|
+
|
|
24
|
+
async function _default(services, opts) {
|
|
25
|
+
const tlsRootCaDir = (0, _config.getConfig)().tlsRootCaDir || _config.DEFAULT_TLS_ROOT_CA_DIR;
|
|
26
|
+
|
|
27
|
+
const configDir = (0, _config.getConfigDir)();
|
|
28
|
+
|
|
29
|
+
if (opts.disable) {
|
|
30
|
+
await (0, _https.removeCert)(opts);
|
|
31
|
+
await (0, _httpProxy.reconfigureHTTPProxy)({
|
|
32
|
+
restart: true
|
|
33
|
+
});
|
|
34
|
+
console.log();
|
|
35
|
+
console.log(_chalk.default.green(`✅ HTTPS for service ${opts.disable} is now disabled`));
|
|
36
|
+
console.log();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!services || services.length === 0) {
|
|
41
|
+
if (!_fs.default.existsSync(`${configDir}/tls-certs`)) return;
|
|
42
|
+
|
|
43
|
+
const files = _fs.default.readdirSync(`${configDir}/tls-certs`);
|
|
44
|
+
|
|
45
|
+
const urls = files.filter(file => file.endsWith('.crt')).map(crt => {
|
|
46
|
+
return `https://${crt.replace('.crt', '')}`;
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
for (const url of urls) {
|
|
50
|
+
console.log(`${url}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!_fs.default.existsSync(`${tlsRootCaDir}/ca.crt`) || !_fs.default.existsSync(`${tlsRootCaDir}/ca.key`)) {
|
|
57
|
+
await (0, _https.generateRootCa)();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const navy = await (0, _navy.getNavy)(opts.navy);
|
|
61
|
+
await navy.ensurePluginsLoaded();
|
|
62
|
+
const availableServices = await navy.getAvailableServiceNames();
|
|
63
|
+
const httpsReadyServices = [];
|
|
64
|
+
|
|
65
|
+
for (const service of services) {
|
|
66
|
+
if (!availableServices.includes(service)) {
|
|
67
|
+
console.log(`❌ ${service} not found, skipping`);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const serviceUrl = await navy.url(service);
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
await (0, _https.createCert)({
|
|
75
|
+
serviceUrl
|
|
76
|
+
});
|
|
77
|
+
httpsReadyServices.push(service);
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.log(error);
|
|
80
|
+
throw new _errors.NavyError(`Could not generate TLS cert for ${service}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
await (0, _httpProxy.reconfigureHTTPProxy)({
|
|
85
|
+
restart: true
|
|
86
|
+
});
|
|
87
|
+
console.log();
|
|
88
|
+
console.log(_chalk.default.green(`✅ Service(s) ${httpsReadyServices.join(', ')} now accessible via HTTPS🔒`));
|
|
89
|
+
console.log();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
module.exports = exports.default;
|
package/lib/cli/import.js
CHANGED
|
@@ -1,75 +1,38 @@
|
|
|
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 _path = require('path');
|
|
16
|
-
|
|
17
|
-
var _path2 = _interopRequireDefault(_path);
|
|
18
|
-
|
|
19
|
-
var _chalk = require('chalk');
|
|
20
|
-
|
|
21
|
-
var _chalk2 = _interopRequireDefault(_chalk);
|
|
22
|
-
|
|
23
|
-
var _fs = require('../util/fs');
|
|
24
|
-
|
|
25
|
-
var _fs2 = _interopRequireDefault(_fs);
|
|
26
|
-
|
|
27
|
-
var _ = require('../');
|
|
28
|
-
|
|
29
|
-
var _configProvider = require('../config-provider');
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
30
11
|
|
|
31
|
-
var
|
|
12
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
32
13
|
|
|
33
|
-
|
|
14
|
+
var _fs = _interopRequireDefault(require("../util/fs"));
|
|
34
15
|
|
|
35
|
-
|
|
36
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(opts) {
|
|
37
|
-
var navy, boatAsciiArt, initialiseOpts;
|
|
38
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
39
|
-
while (1) {
|
|
40
|
-
switch (_context.prev = _context.next) {
|
|
41
|
-
case 0:
|
|
42
|
-
navy = (0, _.getNavy)(opts.navy);
|
|
43
|
-
boatAsciiArt = _fs2.default.readFileSync(_path2.default.join(__dirname, '../../resources/sailing-boat.txt')).toString();
|
|
44
|
-
_context.next = 4;
|
|
45
|
-
return (0, _configProvider.getImportOptionsForCLI)(opts);
|
|
16
|
+
var _ = require("../");
|
|
46
17
|
|
|
47
|
-
|
|
48
|
-
initialiseOpts = _context.sent;
|
|
49
|
-
_context.next = 7;
|
|
50
|
-
return (0, _util.importNavy)(navy, initialiseOpts);
|
|
18
|
+
var _configProvider = require("../config-provider");
|
|
51
19
|
|
|
52
|
-
|
|
20
|
+
var _util = require("./util");
|
|
53
21
|
|
|
54
|
-
|
|
55
|
-
|
|
22
|
+
async function _default(opts) {
|
|
23
|
+
const navy = (0, _.getNavy)(opts.navy);
|
|
56
24
|
|
|
57
|
-
|
|
58
|
-
console.log(boatAsciiArt);
|
|
59
|
-
console.log();
|
|
60
|
-
}
|
|
25
|
+
const boatAsciiArt = _fs.default.readFileSync(_path.default.join(__dirname, '../../resources/sailing-boat.txt')).toString();
|
|
61
26
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
}, _callee, this);
|
|
68
|
-
}));
|
|
27
|
+
const initialiseOpts = await (0, _configProvider.getImportOptionsForCLI)(opts);
|
|
28
|
+
await (0, _util.importNavy)(navy, initialiseOpts);
|
|
29
|
+
console.log(` You can now use ${_chalk.default.bold('navy')} commands from any directory to control this Navy.`);
|
|
30
|
+
console.log();
|
|
69
31
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
32
|
+
if (process.stdout.isTTY) {
|
|
33
|
+
console.log(boatAsciiArt);
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
74
37
|
|
|
75
38
|
module.exports = exports.default;
|
package/lib/cli/index.js
CHANGED
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _package = _interopRequireDefault(require("../../package.json"));
|
|
6
6
|
|
|
7
|
-
var _program = require(
|
|
7
|
+
var _program = _interopRequireDefault(require("./program"));
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _errors = require("../errors");
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const debug = require('debug')('navy:cli');
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
_program.default.version(_package.default.version);
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
_program2.default.version(_package2.default.version);
|
|
18
|
-
|
|
19
|
-
_program2.default.command('help').alias('*').action(function () {
|
|
20
|
-
return _program2.default.help();
|
|
21
|
-
});
|
|
15
|
+
_program.default.command('help').alias('*').action(() => _program.default.help());
|
|
22
16
|
|
|
23
17
|
try {
|
|
24
|
-
|
|
18
|
+
_program.default.parse(process.argv);
|
|
25
19
|
} catch (ex) {
|
|
26
20
|
if (ex instanceof _errors.NavyError) {
|
|
27
21
|
ex.prettyPrint();
|
|
@@ -32,6 +26,6 @@ try {
|
|
|
32
26
|
|
|
33
27
|
debug('Invoked CLI action');
|
|
34
28
|
|
|
35
|
-
if (
|
|
36
|
-
|
|
29
|
+
if (_program.default.args.length === 0) {
|
|
30
|
+
_program.default.help();
|
|
37
31
|
}
|
package/lib/cli/lan-ip.js
CHANGED
|
@@ -1,71 +1,29 @@
|
|
|
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 _extends2 = require('babel-runtime/helpers/extends');
|
|
12
|
-
|
|
13
|
-
var _extends3 = _interopRequireDefault(_extends2);
|
|
14
|
-
|
|
15
|
-
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
|
16
|
-
|
|
17
|
-
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
|
18
|
-
|
|
19
|
-
var _chalk = require('chalk');
|
|
20
|
-
|
|
21
|
-
var _chalk2 = _interopRequireDefault(_chalk);
|
|
22
|
-
|
|
23
|
-
var _getLanIp = require('../util/get-lan-ip');
|
|
24
|
-
|
|
25
|
-
var _config = require('../config');
|
|
26
|
-
|
|
27
|
-
var _reconfigure = require('./util/reconfigure');
|
|
28
|
-
|
|
29
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
-
|
|
31
|
-
exports.default = function () {
|
|
32
|
-
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(navy) {
|
|
33
|
-
var lanIP;
|
|
34
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
|
35
|
-
while (1) {
|
|
36
|
-
switch (_context.prev = _context.next) {
|
|
37
|
-
case 0:
|
|
38
|
-
_context.next = 2;
|
|
39
|
-
return (0, _getLanIp.getLANIP)();
|
|
40
|
-
|
|
41
|
-
case 2:
|
|
42
|
-
lanIP = _context.sent;
|
|
43
|
-
_context.next = 5;
|
|
44
|
-
return (0, _config.setConfig)((0, _extends3.default)({}, (0, _config.getConfig)(), {
|
|
45
|
-
externalIP: lanIP
|
|
46
|
-
}));
|
|
47
|
-
|
|
48
|
-
case 5:
|
|
49
|
-
_context.next = 7;
|
|
50
|
-
return (0, _reconfigure.reconfigureAllNavies)();
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
51
11
|
|
|
52
|
-
|
|
12
|
+
var _getLanIp = require("../util/get-lan-ip");
|
|
53
13
|
|
|
54
|
-
|
|
55
|
-
console.log(_chalk2.default.green(' \u2714 Now using your LAN IP address (' + lanIP + ')'));
|
|
56
|
-
console.log();
|
|
14
|
+
var _config = require("../config");
|
|
57
15
|
|
|
58
|
-
|
|
59
|
-
case 'end':
|
|
60
|
-
return _context.stop();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, _callee, this);
|
|
64
|
-
}));
|
|
16
|
+
var _reconfigure = require("./util/reconfigure");
|
|
65
17
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
18
|
+
async function _default(navy) {
|
|
19
|
+
const lanIP = await (0, _getLanIp.getLANIP)();
|
|
20
|
+
await (0, _config.setConfig)({ ...(0, _config.getConfig)(),
|
|
21
|
+
externalIP: lanIP
|
|
22
|
+
});
|
|
23
|
+
await (0, _reconfigure.reconfigureAllNavies)();
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(_chalk.default.green(` ✔ Now using your LAN IP address (${lanIP})`));
|
|
26
|
+
console.log();
|
|
27
|
+
}
|
|
70
28
|
|
|
71
29
|
module.exports = exports.default;
|