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 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]
@@ -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 { discover } = await Promise.resolve().then(() => require('balena-sync'));
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 discover.discoverLocalBalenaOsDevices(discoverTimeout);
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 = _.map(productionDevices, (device) => {
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":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../lib/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface LocalBalenaOsDevice {
2
+ address: string;
3
+ host: string;
4
+ osVariant?: string;
5
+ port: number;
6
+ }
7
+ export declare function discoverLocalBalenaOsDevices(timeout?: number): Promise<LocalBalenaOsDevice[]>;
8
+ export {};
@@ -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"}
@@ -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: () => any;
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: () => {
@@ -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 forms.selectLocalBalenaOsDevice();
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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"}
@@ -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 }) {
@@ -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 { discover } = await import('balena-sync');
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: LocalBalenaOsDevice[] =
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: LocalBalenaOsDevice[] = localDevices.filter(
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 = _.map(
120
- productionDevices,
121
- (device: LocalBalenaOsDevice) => {
122
- return {
123
- host: device.host,
124
- address: device.address,
125
- osVariant: 'production',
126
- dockerInfo: undefined,
127
- dockerVersion: undefined,
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
+ }
@@ -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 forms.selectLocalBalenaOsDevice();
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(