Skip to content

Commit 5c723a4

Browse files
authored
[feature]: Add auto upgrade information to cli output (#2826)
* add automaticUpgrade policy to 'iob list adapters' output - closes #2825 * also log auto upgrade info for repo cli output * improved types * fix console output
1 parent f7493f3 commit 5c723a4

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

packages/cli/src/lib/setup/setupList.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,17 @@ export type ListType =
5959
| 'files'
6060
| 'f';
6161

62+
interface AdapterListEntry {
63+
/** The object id */
64+
id: string;
65+
/** Adapter name */
66+
name: string;
67+
/** Version of adapter */
68+
version: string;
69+
/** The configured upgrade policy */
70+
'upgrade policy': ioBroker.AutoUpgradePolicy;
71+
}
72+
6273
export class List {
6374
private config: Record<string, any>;
6475
private objects: ObjectsRedisClient;
@@ -388,10 +399,12 @@ export class List {
388399
return;
389400
}
390401
const reg = filter ? new RegExp(tools.pattern2RegEx('system.adapter.' + filter)) : null;
402+
const adapterList: AdapterListEntry[] = [];
391403
for (const obj of objs.rows) {
392404
if (obj.value.type !== 'adapter') {
393405
continue;
394406
}
407+
395408
if (
396409
!reg ||
397410
reg.test(obj.value._id) ||
@@ -403,11 +416,16 @@ export class List {
403416
name = name[lang] || name.en;
404417
}
405418

406-
const text = `${id.padEnd(39)}: ${name.padEnd(14)} - v${obj.value.common.version}`;
407-
408-
console.log(text);
419+
adapterList.push({
420+
id,
421+
name,
422+
version: obj.value.common.version,
423+
'upgrade policy': obj.value.common.automaticUpgrade ?? 'none'
424+
});
409425
}
410426
}
427+
428+
console.table(adapterList);
411429
this.processExit();
412430
}
413431
);

packages/cli/src/lib/setup/setupRepo.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ export class Repo {
175175
*/
176176
async showRepo(repoUrl: string | string[], flags: RepoFlags): Promise<void> {
177177
// Get the repositories
178-
const systemConfig = await this.objects.getObjectAsync('system.config');
179-
const systemRepos = await this.objects.getObjectAsync('system.repositories');
178+
const systemConfig = await this.objects.getObject('system.config');
179+
const systemRepos = await this.objects.getObject('system.repositories');
180180
if (!systemConfig) {
181181
console.error('Error: Object "system.config" not found');
182182
} else if (!systemRepos) {
@@ -331,22 +331,30 @@ export class Repo {
331331
*/
332332
async showRepoStatus(): Promise<number> {
333333
try {
334-
const obj = await this.objects.getObjectAsync('system.repositories');
334+
const obj = await this.objects.getObject('system.repositories');
335+
const objCfg = await this.objects.getObject('system.config');
336+
335337
if (!obj) {
336338
console.error('List is empty');
337339
return EXIT_CODES.CANNOT_GET_REPO_LIST;
338340
} else if (obj.native.repositories) {
339-
Object.keys(obj.native.repositories).forEach(r =>
340-
console.log(`${r.padEnd(14)}: ${obj.native.repositories[r].link}`)
341+
console.table(
342+
Object.entries(obj.native.repositories).map(([key, value]) => {
343+
return {
344+
name: key,
345+
url: value.link,
346+
'auto upgrade': objCfg?.common.adapterAutoUpgrade?.repositories[key] ?? false
347+
};
348+
})
341349
);
342350

343-
const objCfg = await this.objects.getObjectAsync('system.config');
344351
if (objCfg?.common) {
345352
let activeRepo = objCfg.common.activeRepo;
346353
if (typeof activeRepo === 'string') {
347354
activeRepo = [activeRepo];
348355
}
349356
console.log(`\nActive repo(s): ${activeRepo.join(', ')}`);
357+
console.log(`Upgrade policy: ${objCfg.common.adapterAutoUpgrade?.defaultPolicy ?? 'none'}`);
350358
}
351359
} else {
352360
console.error('List is empty');

0 commit comments

Comments
 (0)