balena-cli 14.5.16 → 14.5.17
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/CHANGELOG.md +4 -0
- package/build/commands/scan.js +3 -3
- package/build/commands/scan.js.map +1 -1
- package/build/utils/discover.d.ts +8 -0
- package/build/utils/discover.js +21 -0
- package/build/utils/discover.js.map +1 -0
- package/build/utils/lazy.d.ts +2 -1
- package/build/utils/promote.js +45 -4
- package/build/utils/promote.js.map +1 -1
- package/lib/commands/preload.ts +2 -2
- package/lib/commands/scan.ts +12 -17
- package/lib/utils/discover.ts +40 -0
- package/lib/utils/promote.ts +52 -5
- package/npm-shrinkwrap.json +196 -274
- package/oclif.manifest.json +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file
|
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
## 14.5.17 - 2022-12-28
|
|
8
|
+
|
|
9
|
+
* Stop using the deprecated balena-sync module [Thodoris Greasidis]
|
|
10
|
+
|
|
7
11
|
## 14.5.16 - 2022-12-28
|
|
8
12
|
|
|
9
13
|
* Update the npm-shrinkwrap.json dependencies to match the package.json [Thodoris Greasidis]
|
package/build/commands/scan.js
CHANGED
|
@@ -7,7 +7,7 @@ const lazy_1 = require("../utils/lazy");
|
|
|
7
7
|
class ScanCmd extends command_2.default {
|
|
8
8
|
async run() {
|
|
9
9
|
const _ = await Promise.resolve().then(() => require('lodash'));
|
|
10
|
-
const {
|
|
10
|
+
const { discoverLocalBalenaOsDevices } = await Promise.resolve().then(() => require('../utils/discover'));
|
|
11
11
|
const prettyjson = await Promise.resolve().then(() => require('prettyjson'));
|
|
12
12
|
const dockerUtils = await Promise.resolve().then(() => require('../utils/docker'));
|
|
13
13
|
const dockerPort = 2375;
|
|
@@ -16,7 +16,7 @@ class ScanCmd extends command_2.default {
|
|
|
16
16
|
const discoverTimeout = options.timeout != null ? options.timeout * 1000 : undefined;
|
|
17
17
|
const ux = (0, lazy_1.getCliUx)();
|
|
18
18
|
ux.action.start('Scanning for local balenaOS devices');
|
|
19
|
-
const localDevices = await
|
|
19
|
+
const localDevices = await discoverLocalBalenaOsDevices(discoverTimeout);
|
|
20
20
|
const engineReachableDevices = await Promise.all(localDevices.map(async ({ address }) => {
|
|
21
21
|
const docker = await dockerUtils.createClient({
|
|
22
22
|
host: address,
|
|
@@ -33,7 +33,7 @@ class ScanCmd extends command_2.default {
|
|
|
33
33
|
}));
|
|
34
34
|
const developmentDevices = localDevices.filter((_localDevice, index) => engineReachableDevices[index]);
|
|
35
35
|
const productionDevices = _.differenceWith(localDevices, developmentDevices, _.isEqual);
|
|
36
|
-
const productionDevicesInfo =
|
|
36
|
+
const productionDevicesInfo = productionDevices.map((device) => {
|
|
37
37
|
return {
|
|
38
38
|
host: device.host,
|
|
39
39
|
address: device.address,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../lib/commands/scan.ts"],"names":[],"mappings":";;AAiBA,4CAAuC;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../lib/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.discoverLocalBalenaOsDevices = void 0;
|
|
4
|
+
const resin_discoverable_services_1 = require("resin-discoverable-services");
|
|
5
|
+
const avahiBalenaSshTag = 'resin-ssh';
|
|
6
|
+
async function discoverLocalBalenaOsDevices(timeout = 4000) {
|
|
7
|
+
const availableServices = await (0, resin_discoverable_services_1.enumerateServices)();
|
|
8
|
+
const serviceDefinitions = Array.from(availableServices)
|
|
9
|
+
.filter((s) => Array.from(s.tags).includes(avahiBalenaSshTag))
|
|
10
|
+
.map((s) => s.service);
|
|
11
|
+
if (serviceDefinitions.length === 0) {
|
|
12
|
+
throw new Error(`Could not find any available '${avahiBalenaSshTag}' services`);
|
|
13
|
+
}
|
|
14
|
+
const services = await (0, resin_discoverable_services_1.findServices)(serviceDefinitions, timeout);
|
|
15
|
+
return services.map(function (service) {
|
|
16
|
+
const { referer: { address }, host, port, } = service;
|
|
17
|
+
return { address, host, port };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.discoverLocalBalenaOsDevices = discoverLocalBalenaOsDevices;
|
|
21
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../lib/utils/discover.ts"],"names":[],"mappings":";;;AAAA,6EAA8E;AAW9E,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAE/B,KAAK,UAAU,4BAA4B,CACjD,OAAO,GAAG,IAAI;IAEd,MAAM,iBAAiB,GAAG,MAAM,IAAA,+CAAiB,GAAE,CAAC;IACpD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAExB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CACd,iCAAiC,iBAAiB,YAAY,CAC9D,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,0CAAY,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,OAAO;QAGpC,MAAM,EACL,OAAO,EAAE,EAAE,OAAO,EAAE,EACpB,IAAI,EACJ,IAAI,GACJ,GAAG,OAAO,CAAC;QAEZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC;AA1BD,oEA0BC"}
|
package/build/utils/lazy.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type * as BalenaSdk from 'balena-sdk';
|
|
2
2
|
import type { Chalk } from 'chalk';
|
|
3
|
+
import type * as visuals from 'resin-cli-visuals';
|
|
3
4
|
import type * as CliForm from 'resin-cli-form';
|
|
4
5
|
export declare const onceAsync: <T>(fn: () => Promise<T>) => () => Promise<T>;
|
|
5
6
|
export declare const getBalenaSdk: () => BalenaSdk.BalenaSDK;
|
|
6
|
-
export declare const getVisuals: () =>
|
|
7
|
+
export declare const getVisuals: () => typeof visuals;
|
|
7
8
|
export declare const getChalk: () => Chalk;
|
|
8
9
|
export declare const getCliForm: () => typeof CliForm;
|
|
9
10
|
export declare const getCliUx: () => {
|
package/build/utils/promote.js
CHANGED
|
@@ -112,12 +112,54 @@ async function getOsVersion(deviceIp) {
|
|
|
112
112
|
}
|
|
113
113
|
return match[1];
|
|
114
114
|
}
|
|
115
|
+
const dockerPort = 2375;
|
|
116
|
+
const dockerTimeout = 2000;
|
|
117
|
+
async function selectLocalBalenaOsDevice(timeout = 4000) {
|
|
118
|
+
const { discoverLocalBalenaOsDevices } = await Promise.resolve().then(() => require('../utils/discover'));
|
|
119
|
+
const { SpinnerPromise } = (0, lazy_1.getVisuals)();
|
|
120
|
+
const devices = await new SpinnerPromise({
|
|
121
|
+
promise: discoverLocalBalenaOsDevices(timeout),
|
|
122
|
+
startMessage: 'Discovering local balenaOS devices..',
|
|
123
|
+
stopMessage: 'Reporting discovered devices',
|
|
124
|
+
});
|
|
125
|
+
const responsiveDevices = [];
|
|
126
|
+
const Docker = await Promise.resolve().then(() => require('docker-toolbelt'));
|
|
127
|
+
await Promise.all(devices.map(async function (device) {
|
|
128
|
+
const address = device === null || device === void 0 ? void 0 : device.address;
|
|
129
|
+
if (!address) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const docker = new Docker({
|
|
134
|
+
host: address,
|
|
135
|
+
port: dockerPort,
|
|
136
|
+
timeout: dockerTimeout,
|
|
137
|
+
});
|
|
138
|
+
await docker.ping();
|
|
139
|
+
responsiveDevices.push(device);
|
|
140
|
+
}
|
|
141
|
+
catch (_a) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
if (!responsiveDevices.length) {
|
|
146
|
+
throw new Error('Could not find any local balenaOS devices');
|
|
147
|
+
}
|
|
148
|
+
return (0, lazy_1.getCliForm)().ask({
|
|
149
|
+
message: 'select a device',
|
|
150
|
+
type: 'list',
|
|
151
|
+
default: devices[0].address,
|
|
152
|
+
choices: responsiveDevices.map((device) => ({
|
|
153
|
+
name: `${device.host || 'untitled'} (${device.address})`,
|
|
154
|
+
value: device.address,
|
|
155
|
+
})),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
115
158
|
async function selectLocalDevice() {
|
|
116
|
-
const { forms } = await Promise.resolve().then(() => require('balena-sync'));
|
|
117
|
-
let hostnameOrIp;
|
|
118
159
|
try {
|
|
119
|
-
hostnameOrIp = await
|
|
160
|
+
const hostnameOrIp = await selectLocalBalenaOsDevice();
|
|
120
161
|
console.error(`==> Selected device: ${hostnameOrIp}`);
|
|
162
|
+
return hostnameOrIp;
|
|
121
163
|
}
|
|
122
164
|
catch (e) {
|
|
123
165
|
if (e.message.toLowerCase().includes('could not find any')) {
|
|
@@ -127,7 +169,6 @@ async function selectLocalDevice() {
|
|
|
127
169
|
throw e;
|
|
128
170
|
}
|
|
129
171
|
}
|
|
130
|
-
return hostnameOrIp;
|
|
131
172
|
}
|
|
132
173
|
async function selectAppFromList(applications) {
|
|
133
174
|
const _ = await Promise.resolve().then(() => require('lodash'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../lib/utils/promote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../lib/utils/promote.ts"],"names":[],"mappings":"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"}
|
package/lib/commands/preload.ts
CHANGED
|
@@ -187,7 +187,7 @@ Can be repeated to add multiple certificates.\
|
|
|
187
187
|
: undefined;
|
|
188
188
|
|
|
189
189
|
const progressBars: {
|
|
190
|
-
[key: string]: ReturnType<typeof getVisuals>['Progress']
|
|
190
|
+
[key: string]: InstanceType<ReturnType<typeof getVisuals>['Progress']>;
|
|
191
191
|
} = {};
|
|
192
192
|
|
|
193
193
|
const progressHandler = function (event: {
|
|
@@ -201,7 +201,7 @@ Can be repeated to add multiple certificates.\
|
|
|
201
201
|
};
|
|
202
202
|
|
|
203
203
|
const spinners: {
|
|
204
|
-
[key: string]: ReturnType<typeof getVisuals>['Spinner']
|
|
204
|
+
[key: string]: InstanceType<ReturnType<typeof getVisuals>['Spinner']>;
|
|
205
205
|
} = {};
|
|
206
206
|
|
|
207
207
|
const spinnerHandler = function (event: { name: string; action: string }) {
|
package/lib/commands/scan.ts
CHANGED
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { flags } from '@oclif/command';
|
|
19
|
-
import type { LocalBalenaOsDevice } from 'balena-sync';
|
|
20
19
|
import Command from '../command';
|
|
21
20
|
import * as cf from '../utils/common-flags';
|
|
22
21
|
import { getCliUx, stripIndent } from '../utils/lazy';
|
|
@@ -72,7 +71,7 @@ export default class ScanCmd extends Command {
|
|
|
72
71
|
|
|
73
72
|
public async run() {
|
|
74
73
|
const _ = await import('lodash');
|
|
75
|
-
const {
|
|
74
|
+
const { discoverLocalBalenaOsDevices } = await import('../utils/discover');
|
|
76
75
|
const prettyjson = await import('prettyjson');
|
|
77
76
|
const dockerUtils = await import('../utils/docker');
|
|
78
77
|
|
|
@@ -88,8 +87,7 @@ export default class ScanCmd extends Command {
|
|
|
88
87
|
const ux = getCliUx();
|
|
89
88
|
ux.action.start('Scanning for local balenaOS devices');
|
|
90
89
|
|
|
91
|
-
const localDevices
|
|
92
|
-
await discover.discoverLocalBalenaOsDevices(discoverTimeout);
|
|
90
|
+
const localDevices = await discoverLocalBalenaOsDevices(discoverTimeout);
|
|
93
91
|
const engineReachableDevices: boolean[] = await Promise.all(
|
|
94
92
|
localDevices.map(async ({ address }: { address: string }) => {
|
|
95
93
|
const docker = await dockerUtils.createClient({
|
|
@@ -106,7 +104,7 @@ export default class ScanCmd extends Command {
|
|
|
106
104
|
}),
|
|
107
105
|
);
|
|
108
106
|
|
|
109
|
-
const developmentDevices
|
|
107
|
+
const developmentDevices = localDevices.filter(
|
|
110
108
|
(_localDevice, index) => engineReachableDevices[index],
|
|
111
109
|
);
|
|
112
110
|
|
|
@@ -116,18 +114,15 @@ export default class ScanCmd extends Command {
|
|
|
116
114
|
_.isEqual,
|
|
117
115
|
);
|
|
118
116
|
|
|
119
|
-
const productionDevicesInfo =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
};
|
|
129
|
-
},
|
|
130
|
-
);
|
|
117
|
+
const productionDevicesInfo = productionDevices.map((device) => {
|
|
118
|
+
return {
|
|
119
|
+
host: device.host,
|
|
120
|
+
address: device.address,
|
|
121
|
+
osVariant: 'production',
|
|
122
|
+
dockerInfo: undefined,
|
|
123
|
+
dockerVersion: undefined,
|
|
124
|
+
};
|
|
125
|
+
});
|
|
131
126
|
|
|
132
127
|
// Query devices for info
|
|
133
128
|
const devicesInfo = await Promise.all(
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { enumerateServices, findServices } from 'resin-discoverable-services';
|
|
2
|
+
|
|
3
|
+
interface LocalBalenaOsDevice {
|
|
4
|
+
address: string;
|
|
5
|
+
host: string;
|
|
6
|
+
osVariant?: string;
|
|
7
|
+
port: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Although we only check for 'balena-ssh', we know, implicitly, that balenaOS
|
|
11
|
+
// devices come with 'rsync' installed that can be used over SSH.
|
|
12
|
+
const avahiBalenaSshTag = 'resin-ssh';
|
|
13
|
+
|
|
14
|
+
export async function discoverLocalBalenaOsDevices(
|
|
15
|
+
timeout = 4000,
|
|
16
|
+
): Promise<LocalBalenaOsDevice[]> {
|
|
17
|
+
const availableServices = await enumerateServices();
|
|
18
|
+
const serviceDefinitions = Array.from(availableServices)
|
|
19
|
+
.filter((s) => Array.from(s.tags).includes(avahiBalenaSshTag))
|
|
20
|
+
.map((s) => s.service);
|
|
21
|
+
|
|
22
|
+
if (serviceDefinitions.length === 0) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
`Could not find any available '${avahiBalenaSshTag}' services`,
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const services = await findServices(serviceDefinitions, timeout);
|
|
29
|
+
return services.map(function (service) {
|
|
30
|
+
// User referer address to get device IP. This will work fine assuming that
|
|
31
|
+
// a device only advertises own services.
|
|
32
|
+
const {
|
|
33
|
+
referer: { address },
|
|
34
|
+
host,
|
|
35
|
+
port,
|
|
36
|
+
} = service;
|
|
37
|
+
|
|
38
|
+
return { address, host, port };
|
|
39
|
+
});
|
|
40
|
+
}
|
package/lib/utils/promote.ts
CHANGED
|
@@ -163,12 +163,61 @@ async function getOsVersion(deviceIp: string): Promise<string> {
|
|
|
163
163
|
return match[1];
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
+
const dockerPort = 2375;
|
|
167
|
+
const dockerTimeout = 2000;
|
|
168
|
+
|
|
169
|
+
async function selectLocalBalenaOsDevice(timeout = 4000): Promise<string> {
|
|
170
|
+
const { discoverLocalBalenaOsDevices } = await import('../utils/discover');
|
|
171
|
+
const { SpinnerPromise } = getVisuals();
|
|
172
|
+
const devices = await new SpinnerPromise({
|
|
173
|
+
promise: discoverLocalBalenaOsDevices(timeout),
|
|
174
|
+
startMessage: 'Discovering local balenaOS devices..',
|
|
175
|
+
stopMessage: 'Reporting discovered devices',
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
const responsiveDevices: typeof devices = [];
|
|
179
|
+
const Docker = await import('docker-toolbelt');
|
|
180
|
+
await Promise.all(
|
|
181
|
+
devices.map(async function (device) {
|
|
182
|
+
const address = device?.address;
|
|
183
|
+
if (!address) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
const docker = new Docker({
|
|
189
|
+
host: address,
|
|
190
|
+
port: dockerPort,
|
|
191
|
+
timeout: dockerTimeout,
|
|
192
|
+
});
|
|
193
|
+
await docker.ping();
|
|
194
|
+
responsiveDevices.push(device);
|
|
195
|
+
} catch {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
}),
|
|
199
|
+
);
|
|
200
|
+
|
|
201
|
+
if (!responsiveDevices.length) {
|
|
202
|
+
throw new Error('Could not find any local balenaOS devices');
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return getCliForm().ask({
|
|
206
|
+
message: 'select a device',
|
|
207
|
+
type: 'list',
|
|
208
|
+
default: devices[0].address,
|
|
209
|
+
choices: responsiveDevices.map((device) => ({
|
|
210
|
+
name: `${device.host || 'untitled'} (${device.address})`,
|
|
211
|
+
value: device.address,
|
|
212
|
+
})),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
|
|
166
216
|
async function selectLocalDevice(): Promise<string> {
|
|
167
|
-
const { forms } = await import('balena-sync');
|
|
168
|
-
let hostnameOrIp;
|
|
169
217
|
try {
|
|
170
|
-
hostnameOrIp = await
|
|
218
|
+
const hostnameOrIp = await selectLocalBalenaOsDevice();
|
|
171
219
|
console.error(`==> Selected device: ${hostnameOrIp}`);
|
|
220
|
+
return hostnameOrIp;
|
|
172
221
|
} catch (e) {
|
|
173
222
|
if (e.message.toLowerCase().includes('could not find any')) {
|
|
174
223
|
throw new ExpectedError(e);
|
|
@@ -176,8 +225,6 @@ async function selectLocalDevice(): Promise<string> {
|
|
|
176
225
|
throw e;
|
|
177
226
|
}
|
|
178
227
|
}
|
|
179
|
-
|
|
180
|
-
return hostnameOrIp;
|
|
181
228
|
}
|
|
182
229
|
|
|
183
230
|
async function selectAppFromList(
|