@iobroker/js-controller-cli 4.0.0-alpha.9-20211115-5dac659e → 4.0.3

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.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * List different objects for CLI
3
3
  *
4
- * Copyright 2013-2020 bluefox <dogafox@gmail.com>
4
+ * Copyright 2013-2022 bluefox <dogafox@gmail.com>
5
5
  *
6
6
  * MIT License
7
7
  *
@@ -15,10 +15,10 @@ function List(options) {
15
15
 
16
16
  options = options || {};
17
17
 
18
- if (!options.states) {
18
+ if (!options.states) {
19
19
  throw new Error('Invalid Modified arguments: states is missing');
20
20
  }
21
- if (!options.objects) {
21
+ if (!options.objects) {
22
22
  throw new Error('Invalid arguments: objects is missing');
23
23
  }
24
24
  if (!options.processExit) {
@@ -26,29 +26,29 @@ function List(options) {
26
26
  }
27
27
 
28
28
  const { tools } = require('@iobroker/js-controller-common');
29
- const fs = require('fs-extra');
29
+ const fs = require('fs-extra');
30
30
  const { EXIT_CODES } = require('@iobroker/js-controller-common');
31
31
 
32
32
  this.config = fs.readJSONSync(tools.getConfigFileName());
33
33
 
34
- const objects = options.objects;
35
- const states = options.states;
36
- const processExit = options.processExit;
34
+ const objects = options.objects;
35
+ const states = options.states;
36
+ const processExit = options.processExit;
37
37
 
38
38
  function perm2str(perm) {
39
39
  let result = '';
40
40
  // user
41
- result += (perm & 0x400) ? 'r' : '-';
42
- result += (perm & 0x200) ? 'w' : '-';
43
- result += (perm & 0x100) ? 'x' : '-';
41
+ result += perm & 0x400 ? 'r' : '-';
42
+ result += perm & 0x200 ? 'w' : '-';
43
+ result += perm & 0x100 ? 'x' : '-';
44
44
  // group
45
- result += (perm & 0x040) ? 'r' : '-';
46
- result += (perm & 0x020) ? 'w' : '-';
47
- result += (perm & 0x010) ? 'x' : '-';
45
+ result += perm & 0x040 ? 'r' : '-';
46
+ result += perm & 0x020 ? 'w' : '-';
47
+ result += perm & 0x010 ? 'x' : '-';
48
48
  // any
49
- result += (perm & 0x004) ? 'r' : '-';
50
- result += (perm & 0x002) ? 'w' : '-';
51
- result += (perm & 0x001) ? 'x' : '-';
49
+ result += perm & 0x004 ? 'r' : '-';
50
+ result += perm & 0x002 ? 'w' : '-';
51
+ result += perm & 0x001 ? 'x' : '-';
52
52
  return result;
53
53
  }
54
54
 
@@ -72,7 +72,7 @@ function List(options) {
72
72
  }
73
73
  text += time;
74
74
 
75
- if (file.acl){
75
+ if (file.acl) {
76
76
  text += (file.isDir ? 'd' : '-') + perm2str(file.acl.permissions || 0);
77
77
  let owner = file.acl.owner;
78
78
  if (owner) {
@@ -98,12 +98,12 @@ function List(options) {
98
98
  } else {
99
99
  text += (file.isDir ? 'd' : '-') + '?????????' + new Array(31).join(' ');
100
100
  }
101
- let size = (file.stats && file.stats.size) ? file.stats.size.toString() : '';
101
+ let size = file.stats && file.stats.size ? file.stats.size.toString() : '';
102
102
  if (size.length < 7) {
103
103
  size = new Array(7 - size.length).join(' ') + size;
104
104
  }
105
105
 
106
- text += ' ' + size + ' ' + adapter + ((!path || path[0] === '/') ? '' : '/') + path + '/' + file.file;
106
+ text += ' ' + size + ' ' + adapter + (!path || path[0] === '/' ? '' : '/') + path + '/' + file.file;
107
107
  if (file.isDir) {
108
108
  text += '/';
109
109
  console.log(text);
@@ -120,8 +120,11 @@ function List(options) {
120
120
  this.showObject = obj => {
121
121
  //drwxr-xr-x 1 odroid odroid 43 Oct 3 2013 .xsessionrc
122
122
  let text = '';
123
- if (obj.acl){
124
- text += perm2str(obj.acl.object || 0) + ' ' + ((obj.type === 'state') ? perm2str(obj.acl.state || 0) : ' ');
123
+ if (obj.acl) {
124
+ text +=
125
+ perm2str(obj.acl.object || 0) +
126
+ ' ' +
127
+ (obj.type === 'state' ? perm2str(obj.acl.state || 0) : ' ');
125
128
  let owner = obj.acl.owner;
126
129
  if (owner) {
127
130
  owner = owner.substring(12);
@@ -143,7 +146,7 @@ function List(options) {
143
146
  }
144
147
  text += ' ' + group;
145
148
  } else {
146
- text += '?????????' + ((obj.type === 'state') ? ' ?????????' : ' ') + new Array(31).join(' ');
149
+ text += '?????????' + (obj.type === 'state' ? ' ?????????' : ' ') + new Array(31).join(' ');
147
150
  }
148
151
  text += ' ' + obj._id;
149
152
  console.log(text);
@@ -179,7 +182,7 @@ function List(options) {
179
182
  continue;
180
183
  }
181
184
  if (files[f].file === fname) {
182
- allFiles.push({adapter: adapter, path: path, file: files[f]});
185
+ allFiles.push({ adapter: adapter, path: path, file: files[f] });
183
186
  break;
184
187
  }
185
188
  }
@@ -195,7 +198,7 @@ function List(options) {
195
198
  if (files[f].file === '.' || files[f].file === '..') {
196
199
  continue;
197
200
  }
198
- allFiles.push({adapter: adapter, path: path, file: files[f]});
201
+ allFiles.push({ adapter: adapter, path: path, file: files[f] });
199
202
  if (files[f].isDir) {
200
203
  count++;
201
204
  that.listDirectory(adapter, path + '/' + files[f].file, allFiles, function () {
@@ -212,7 +215,7 @@ function List(options) {
212
215
  });
213
216
  };
214
217
 
215
- function sortFiles (a, b) {
218
+ function sortFiles(a, b) {
216
219
  let a1 = a.path + a.file.file;
217
220
  if (a1[0] !== '/') {
218
221
  a1 = '/' + a1;
@@ -242,13 +245,14 @@ function List(options) {
242
245
  files.sort(sortFiles);
243
246
  that.showFileHeader(adapter);
244
247
 
245
- files.filter(f => !filter || (f.path + '/'+ f.file.file).startsWith(filter))
248
+ files
249
+ .filter(f => !filter || (f.path + '/' + f.file.file).startsWith(filter))
246
250
  .forEach(f => that.showFile(f.adapter, f.path, f.file));
247
251
 
248
252
  that.listAdaptersFiles(adapters, callback);
249
253
  });
250
254
  } else {
251
- typeof callback === 'function' && callback ();
255
+ typeof callback === 'function' && callback();
252
256
  }
253
257
  };
254
258
 
@@ -279,16 +283,21 @@ function List(options) {
279
283
  objects.getObjectList(null, (err, objs) => {
280
284
  const reg = filter ? new RegExp(tools.pattern2RegEx(filter)) : null;
281
285
  for (let i = 0; i < objs.rows.length; i++) {
282
- let name = objs.rows[i].value && objs.rows[i].value.common && objs.rows[i].value.common.name;
283
- if (typeof name === 'object') {
286
+ let name =
287
+ objs.rows[i].value && objs.rows[i].value.common && objs.rows[i].value.common.name;
288
+ if (tools.isObject(name)) {
284
289
  name = name[lang] || name.en;
285
290
  }
286
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(name))) {
291
+ if (
292
+ !reg ||
293
+ reg.test(objs.rows[i].value._id) ||
294
+ (objs.rows[i].value.common && reg.test(name))
295
+ ) {
287
296
  if (objs.rows[i].value.type) {
288
297
  let id = objs.rows[i].value._id;
289
298
  let type = objs.rows[i].value.type;
290
- if (id.length < 40) {
291
- id += new Array(40 - id.length).join(' ');
299
+ if (id.length < 40) {
300
+ id += new Array(40 - id.length).join(' ');
292
301
  }
293
302
  if (type.length < 10) {
294
303
  type += new Array(10 - type.length).join(' ');
@@ -329,7 +338,17 @@ function List(options) {
329
338
  if (from.length < 30) {
330
339
  from += new Array(30 - from.length).join(' ');
331
340
  }
332
- console.log(id + ': from [' + from + '] (' + type + ') ' + (states[i].ack ? ' ack': 'not ack') + ' ' + JSON.stringify(states[i].val));
341
+ console.log(
342
+ id +
343
+ ': from [' +
344
+ from +
345
+ '] (' +
346
+ type +
347
+ ') ' +
348
+ (states[i].ack ? ' ack' : 'not ack') +
349
+ ' ' +
350
+ JSON.stringify(states[i].val)
351
+ );
333
352
  }
334
353
  setTimeout(processExit, 1000, null);
335
354
  });
@@ -338,171 +357,222 @@ function List(options) {
338
357
 
339
358
  case 'adapters':
340
359
  case 'a':
341
- objects.getObjectList({startkey: 'system.adapter.', endkey: 'system.adapter.\u9999'}, (err, objs) => {
342
- const reg = filter ? new RegExp(tools.pattern2RegEx('system.adapter.' + filter)) : null;
343
- for (let i = 0; i < objs.rows.length; i++) {
344
- if (objs.rows[i].value.type !== 'adapter') {
345
- continue;
346
- }
347
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))) {
348
- let id = objs.rows[i].value._id;
349
- let name = objs.rows[i].value.common.name;
350
- if (typeof name === 'object') {
351
- name = name[lang] || name.en;
352
- }
353
- if (id.length < 40) {
354
- id += new Array(40 - id.length).join(' ');
355
- }
356
- if (name.length < 15) {
357
- name += new Array(15 - name.length).join(' ');
360
+ objects.getObjectList(
361
+ { startkey: 'system.adapter.', endkey: 'system.adapter.\u9999' },
362
+ (err, objs) => {
363
+ const reg = filter ? new RegExp(tools.pattern2RegEx('system.adapter.' + filter)) : null;
364
+ for (let i = 0; i < objs.rows.length; i++) {
365
+ if (objs.rows[i].value.type !== 'adapter') {
366
+ continue;
358
367
  }
368
+ if (
369
+ !reg ||
370
+ reg.test(objs.rows[i].value._id) ||
371
+ (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))
372
+ ) {
373
+ let id = objs.rows[i].value._id;
374
+ let name = objs.rows[i].value.common.name;
375
+ if (typeof name === 'object') {
376
+ name = name[lang] || name.en;
377
+ }
378
+ if (id.length < 40) {
379
+ id += new Array(40 - id.length).join(' ');
380
+ }
381
+ if (name.length < 15) {
382
+ name += new Array(15 - name.length).join(' ');
383
+ }
359
384
 
360
- const text = id + ': ' + name + ' - v' +
361
- objs.rows[i].value.common.version;
385
+ const text = id + ': ' + name + ' - v' + objs.rows[i].value.common.version;
362
386
 
363
- console.log(text);
387
+ console.log(text);
388
+ }
364
389
  }
390
+ setTimeout(processExit, 1000, null);
365
391
  }
366
- setTimeout(processExit, 1000, null);
367
- });
392
+ );
368
393
  break;
369
394
 
370
395
  case 'instances':
371
396
  case 'i':
372
- objects.getObjectList({startkey: 'system.adapter.', endkey: 'system.adapter.\u9999'}, (err, objs) => {
373
- const reg = filter ? new RegExp(tools.pattern2RegEx('system.adapter.' + filter)) : null;
374
- objs.rows.sort((a, b) => {
375
- if (a.id > b.id) {
376
- return 1;
377
- } else if (a.id < b.id) {
378
- return -1;
379
- }
380
- return 0;
381
- });
382
- const lines = [];
383
- for (const row of objs.rows) {
384
- if (row.value.type !== 'instance') {
385
- continue;
386
- }
387
- if (!reg || reg.test(row.value._id) || (row.value.common && reg.test(row.value.common.name))) {
388
- if (flags.enabled && !row.value.common.enabled) {
389
- continue;
390
- }
391
- if (flags.disabled && row.value.common.enabled) {
392
- continue;
393
- }
394
- if (flags.port && row.value.native.port === undefined) {
395
- continue;
396
- }
397
- if (flags.ssl && row.value.native.secure === undefined) {
398
- continue;
399
- }
400
- if (flags.ip && row.value.native.bind === undefined) {
397
+ objects.getObjectList(
398
+ { startkey: 'system.adapter.', endkey: 'system.adapter.\u9999' },
399
+ (err, objs) => {
400
+ const reg = filter ? new RegExp(tools.pattern2RegEx('system.adapter.' + filter)) : null;
401
+ objs.rows.sort((a, b) => {
402
+ if (a.id > b.id) {
403
+ return 1;
404
+ } else if (a.id < b.id) {
405
+ return -1;
406
+ }
407
+ return 0;
408
+ });
409
+ const lines = [];
410
+ for (const row of objs.rows) {
411
+ if (row.value.type !== 'instance') {
401
412
  continue;
402
413
  }
414
+ if (
415
+ !reg ||
416
+ reg.test(row.value._id) ||
417
+ (row.value.common && reg.test(row.value.common.name))
418
+ ) {
419
+ if (flags.enabled && !row.value.common.enabled) {
420
+ continue;
421
+ }
422
+ if (flags.disabled && row.value.common.enabled) {
423
+ continue;
424
+ }
425
+ if (flags.port && row.value.native.port === undefined) {
426
+ continue;
427
+ }
428
+ if (flags.ssl && row.value.native.secure === undefined) {
429
+ continue;
430
+ }
431
+ if (flags.ip && row.value.native.bind === undefined) {
432
+ continue;
433
+ }
403
434
 
404
- let id = row.value._id;
405
- let name = row.value.common.name;
406
- let host = row.value.common.host;
407
- if (typeof name === 'object') {
408
- name = name[lang] || name.en;
409
- }
410
- if (id.length < 40) {
411
- id = id.padEnd(40);
412
- }
413
- if (name && name.length < 22) {
414
- name = name.padEnd(22);
415
- }
416
-
417
- if (host && host.length < 40) {
418
- host = host.padEnd(40);
419
- }
435
+ let id = row.value._id;
436
+ let name = row.value.common.name;
437
+ let host = row.value.common.host;
438
+ if (typeof name === 'object') {
439
+ name = name[lang] || name.en;
440
+ }
441
+ if (id.length < 40) {
442
+ id = id.padEnd(40);
443
+ }
444
+ if (name && name.length < 22) {
445
+ name = name.padEnd(22);
446
+ }
420
447
 
421
- let text = `${id}: ${name || ''}: ${host} - ${row.value.common.enabled ? ' enabled' : 'disabled'}`;
448
+ if (host && host.length < 40) {
449
+ host = host.padEnd(40);
450
+ }
422
451
 
423
- if (this.config.system && this.config.system.compact && row.value.common.compact) {
424
- text += ', compact ' + (row.value.common.compact && row.value.common.runAsCompactMode ? 'enabled (group ' + (row.value.common.compactGroup !== undefined ? row.value.common.compactGroup : 1) + ')' : 'disabled');
425
- }
452
+ let text = `${id}: ${name || ''}: ${host} - ${
453
+ row.value.common.enabled ? ' enabled' : 'disabled'
454
+ }`;
455
+
456
+ if (this.config.system && this.config.system.compact && row.value.common.compact) {
457
+ text +=
458
+ ', compact ' +
459
+ (row.value.common.compact && row.value.common.runAsCompactMode
460
+ ? 'enabled (group ' +
461
+ (row.value.common.compactGroup !== undefined
462
+ ? row.value.common.compactGroup
463
+ : 1) +
464
+ ')'
465
+ : 'disabled');
466
+ }
426
467
 
427
- if (row.value.native && row.value.native.port) {
428
- text += `, port: ${row.value.native.port}`;
429
- }
430
- if (row.value.native && row.value.native.bind) {
431
- text += `, bind: ${row.value.native.bind}`;
432
- }
433
- if (row.value.native && row.value.native.secure) {
434
- text += ' (SSL)';
435
- }
436
- if (row.value.native && row.value.native.defaultUser) {
437
- text += `, run as: ${row.value.native.defaultUser}`;
468
+ if (row.value.native && row.value.native.port) {
469
+ text += `, port: ${row.value.native.port}`;
470
+ }
471
+ if (row.value.native && row.value.native.bind) {
472
+ text += `, bind: ${row.value.native.bind}`;
473
+ }
474
+ if (row.value.native && row.value.native.secure) {
475
+ text += ' (SSL)';
476
+ }
477
+ if (row.value.native && row.value.native.defaultUser) {
478
+ text += `, run as: ${row.value.native.defaultUser}`;
479
+ }
480
+ lines.push({ id: row.value._id, value: text });
438
481
  }
439
- lines.push({id: row.value._id, value: text});
440
482
  }
483
+ readOnlineState(lines, flags, result => {
484
+ console.log(result.join('\n'));
485
+ console.log('\n+ instance is alive');
486
+ setTimeout(processExit, 1000, null);
487
+ });
441
488
  }
442
- readOnlineState(lines, flags, result => {
443
- console.log(result.join('\n'));
444
- console.log('\n+ instance is alive');
445
- setTimeout(processExit, 1000, null);
446
- });
447
- });
489
+ );
448
490
  break;
449
491
 
450
492
  case 'users':
451
493
  case 'u':
452
- objects.getObjectList({startkey: 'system.user.', endkey: 'system.user.\u9999'}, (err, objs) => {
453
- objects.getObjectList({startkey: 'system.group.', endkey: 'system.group.\u9999'}, (err, groups) => {
454
- const reg = filter ? new RegExp(tools.pattern2RegEx('system.user.' + filter)) : null;
455
- console.log(' ID | Name | Active | Groups');
456
- console.log('---------------------------------------+-------------+----------+--------------');
457
- for (let i = 0; i < objs.rows.length; i++) {
458
- if (objs.rows[i].value.type !== 'user') {
459
- continue;
460
- }
461
-
462
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))) {
463
- let id = objs.rows[i].value._id;
464
- let name = objs.rows[i].value.common.name;
465
- if (typeof name === 'object') {
466
- name = name[lang] || name.en;
467
- }
468
- if (id.length < 40) {
469
- id += new Array(40 - id.length).join(' ');
470
- }
471
- if (name.length < 12) {
472
- name += new Array(12 - name.length).join(' ');
494
+ objects.getObjectList({ startkey: 'system.user.', endkey: 'system.user.\u9999' }, (err, objs) => {
495
+ objects.getObjectList(
496
+ { startkey: 'system.group.', endkey: 'system.group.\u9999' },
497
+ (err, groups) => {
498
+ const reg = filter ? new RegExp(tools.pattern2RegEx('system.user.' + filter)) : null;
499
+ console.log(' ID | Name | Active | Groups');
500
+ console.log(
501
+ '---------------------------------------+-------------+----------+--------------'
502
+ );
503
+ for (let i = 0; i < objs.rows.length; i++) {
504
+ if (objs.rows[i].value.type !== 'user') {
505
+ continue;
473
506
  }
474
507
 
475
- const text = id + '| ' + name + ' | ' +
476
- (objs.rows[i].value.common.enabled ? ' enabled' : 'disabled') + ' |';
477
- const gs = [];
478
- // find all groups
479
- for (let g = 0; g < groups.rows.length; g++) {
480
- if (groups.rows[g].value.common.members && groups.rows[g].value.common.members.indexOf(objs.rows[i].value._id) !== -1) {
481
- gs.push(groups.rows[g].value._id.substring(13));
508
+ if (
509
+ !reg ||
510
+ reg.test(objs.rows[i].value._id) ||
511
+ (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))
512
+ ) {
513
+ let id = objs.rows[i].value._id;
514
+ let name = objs.rows[i].value.common.name;
515
+ if (typeof name === 'object') {
516
+ name = name[lang] || name.en;
517
+ }
518
+ if (id.length < 40) {
519
+ id += new Array(40 - id.length).join(' ');
520
+ }
521
+ if (name.length < 12) {
522
+ name += new Array(12 - name.length).join(' ');
523
+ }
524
+
525
+ const text =
526
+ id +
527
+ '| ' +
528
+ name +
529
+ ' | ' +
530
+ (objs.rows[i].value.common.enabled ? ' enabled' : 'disabled') +
531
+ ' |';
532
+ const gs = [];
533
+ // find all groups
534
+ for (let g = 0; g < groups.rows.length; g++) {
535
+ if (
536
+ groups.rows[g].value.common.members &&
537
+ groups.rows[g].value.common.members.indexOf(objs.rows[i].value._id) !==
538
+ -1
539
+ ) {
540
+ gs.push(groups.rows[g].value._id.substring(13));
541
+ }
482
542
  }
543
+ console.log(text + ' ' + gs.join(', '));
483
544
  }
484
- console.log(text + ' ' + gs.join(', '));
485
545
  }
546
+ setTimeout(processExit, 1000, null);
486
547
  }
487
- setTimeout(processExit, 1000, null);
488
- });
548
+ );
489
549
  });
490
550
  break;
491
551
 
492
552
  case 'groups':
493
553
  case 'g':
494
- objects.getObjectList({startkey: 'system.group.', endkey: 'system.group.\u9999'}, (err, objs) => {
554
+ objects.getObjectList({ startkey: 'system.group.', endkey: 'system.group.\u9999' }, (err, objs) => {
495
555
  const reg = filter ? new RegExp(tools.pattern2RegEx('system.group.' + filter)) : null;
496
556
  console.log('');
497
- console.log(' system.group | object | state | file | user | others | users');
498
- console.log(' | l r w d | l r w d | l r w c d | w c d | |');
499
- console.log('--------------------+---------+---------+-----------+-------+------------------------+---------');
557
+ console.log(
558
+ ' system.group | object | state | file | user | others | users'
559
+ );
560
+ console.log(
561
+ ' | l r w d | l r w d | l r w c d | w c d | |'
562
+ );
563
+ console.log(
564
+ '--------------------+---------+---------+-----------+-------+------------------------+---------'
565
+ );
500
566
  for (let i = 0; i < objs.rows.length; i++) {
501
567
  if (objs.rows[i].value.type !== 'group') {
502
568
  continue;
503
569
  }
504
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))) {
505
- let id = objs.rows[i].value._id.substring(13);
570
+ if (
571
+ !reg ||
572
+ reg.test(objs.rows[i].value._id) ||
573
+ (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))
574
+ ) {
575
+ let id = objs.rows[i].value._id.substring(13);
506
576
  //let name = objs.rows[i].value.common.name;
507
577
 
508
578
  if (id === 'administrator') {
@@ -510,27 +580,27 @@ function List(options) {
510
580
  file: {
511
581
  read: true,
512
582
  write: true,
513
- 'delete': true,
583
+ delete: true,
514
584
  create: true,
515
585
  list: true
516
586
  },
517
587
  object: {
518
588
  read: true,
519
589
  write: true,
520
- 'delete': true,
590
+ delete: true,
521
591
  list: true
522
592
  },
523
593
  state: {
524
594
  read: true,
525
595
  write: true,
526
- 'delete': true,
596
+ delete: true,
527
597
  create: true,
528
598
  list: true
529
599
  },
530
- user: {
600
+ user: {
531
601
  write: true,
532
602
  create: true,
533
- 'delete': true
603
+ delete: true
534
604
  },
535
605
  other: {
536
606
  execute: true,
@@ -546,40 +616,40 @@ function List(options) {
546
616
  let text = id;
547
617
  text += ' | ';
548
618
  if (objs.rows[i].value.common.acl && objs.rows[i].value.common.acl.object) {
549
- text += (objs.rows[i].value.common.acl.object.list ? '+': '-') + ' ';
550
- text += (objs.rows[i].value.common.acl.object.read ? '+': '-') + ' ';
551
- text += (objs.rows[i].value.common.acl.object.write ? '+': '-') + ' ';
552
- text += (objs.rows[i].value.common.acl.object.delete ? '+': '-') + ' ';
619
+ text += (objs.rows[i].value.common.acl.object.list ? '+' : '-') + ' ';
620
+ text += (objs.rows[i].value.common.acl.object.read ? '+' : '-') + ' ';
621
+ text += (objs.rows[i].value.common.acl.object.write ? '+' : '-') + ' ';
622
+ text += (objs.rows[i].value.common.acl.object.delete ? '+' : '-') + ' ';
553
623
  text += '|';
554
624
  } else {
555
625
  text += ' |';
556
626
  }
557
627
  if (objs.rows[i].value.common.acl && objs.rows[i].value.common.acl.state) {
558
628
  text += ' ';
559
- text +=(objs.rows[i].value.common.acl.state.list ? '+': '-') + ' ';
560
- text +=(objs.rows[i].value.common.acl.state.read ? '+': '-') + ' ';
561
- text +=(objs.rows[i].value.common.acl.state.write ? '+': '-') + ' ';
562
- text +=(objs.rows[i].value.common.acl.state.delete ? '+': '-') + ' ';
629
+ text += (objs.rows[i].value.common.acl.state.list ? '+' : '-') + ' ';
630
+ text += (objs.rows[i].value.common.acl.state.read ? '+' : '-') + ' ';
631
+ text += (objs.rows[i].value.common.acl.state.write ? '+' : '-') + ' ';
632
+ text += (objs.rows[i].value.common.acl.state.delete ? '+' : '-') + ' ';
563
633
  text += '|';
564
634
  } else {
565
635
  text += ' |';
566
636
  }
567
637
  if (objs.rows[i].value.common.acl && objs.rows[i].value.common.acl.file) {
568
638
  text += ' ';
569
- text += (objs.rows[i].value.common.acl.file.list ? '+': '-') + ' ';
570
- text += (objs.rows[i].value.common.acl.file.read ? '+': '-') + ' ';
571
- text += (objs.rows[i].value.common.acl.file.write ? '+': '-') + ' ';
572
- text += (objs.rows[i].value.common.acl.file.create ? '+': '-') + ' ';
573
- text += (objs.rows[i].value.common.acl.file.delete ? '+': '-') + ' ';
639
+ text += (objs.rows[i].value.common.acl.file.list ? '+' : '-') + ' ';
640
+ text += (objs.rows[i].value.common.acl.file.read ? '+' : '-') + ' ';
641
+ text += (objs.rows[i].value.common.acl.file.write ? '+' : '-') + ' ';
642
+ text += (objs.rows[i].value.common.acl.file.create ? '+' : '-') + ' ';
643
+ text += (objs.rows[i].value.common.acl.file.delete ? '+' : '-') + ' ';
574
644
  text += '|';
575
645
  } else {
576
646
  text += ' |';
577
647
  }
578
648
  if (objs.rows[i].value.common.acl && objs.rows[i].value.common.acl.users) {
579
649
  text += ' ';
580
- text += (objs.rows[i].value.common.acl.users.write ? '+': '-') + ' ';
581
- text += (objs.rows[i].value.common.acl.users.create ? '+': '-') + ' ';
582
- text += (objs.rows[i].value.common.acl.users.delete ? '+': '-') + ' ';
650
+ text += (objs.rows[i].value.common.acl.users.write ? '+' : '-') + ' ';
651
+ text += (objs.rows[i].value.common.acl.users.create ? '+' : '-') + ' ';
652
+ text += (objs.rows[i].value.common.acl.users.delete ? '+' : '-') + ' ';
583
653
  text += '|';
584
654
  } else {
585
655
  text += ' |';
@@ -599,9 +669,10 @@ function List(options) {
599
669
  }
600
670
 
601
671
  //if (name.length < 30) name += new Array(30 - name.length).join(' ');
602
- if ( objs.rows[i].value.common.members) {
672
+ if (objs.rows[i].value.common.members) {
603
673
  for (let m = 0; m < objs.rows[i].value.common.members.length; m++) {
604
- objs.rows[i].value.common.members[m] = objs.rows[i].value.common.members[m].substring(12);
674
+ objs.rows[i].value.common.members[m] =
675
+ objs.rows[i].value.common.members[m].substring(12);
605
676
  }
606
677
  text += ' ' + objs.rows[i].value.common.members.join(', ');
607
678
  }
@@ -610,7 +681,9 @@ function List(options) {
610
681
  }
611
682
  }
612
683
 
613
- console.log('--------------------+---------+---------+-----------+-------+------------------------+---------');
684
+ console.log(
685
+ '--------------------+---------+---------+-----------+-------+------------------------+---------'
686
+ );
614
687
  console.log('Legend: (l)ist, (r)ead, (w)rite, (c)reate, (d)elete');
615
688
  setTimeout(processExit, 1000, null);
616
689
  });
@@ -618,7 +691,7 @@ function List(options) {
618
691
 
619
692
  case 'h':
620
693
  case 'hosts':
621
- objects.getObjectList({startkey: 'system.host.', endkey: 'system.host.\u9999'}, (err, objs) => {
694
+ objects.getObjectList({ startkey: 'system.host.', endkey: 'system.host.\u9999' }, (err, objs) => {
622
695
  states.getKeys('system.host.*', (err, keys) => {
623
696
  states.getStates(keys, (err, states) => {
624
697
  const reg = filter ? new RegExp(tools.pattern2RegEx('system.host.' + filter)) : null;
@@ -627,8 +700,12 @@ function List(options) {
627
700
  if (objs.rows[i].value.type !== 'host') {
628
701
  continue;
629
702
  }
630
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))) {
631
- let id = objs.rows[i].value._id.substring(12);
703
+ if (
704
+ !reg ||
705
+ reg.test(objs.rows[i].value._id) ||
706
+ (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))
707
+ ) {
708
+ let id = objs.rows[i].value._id.substring(12);
632
709
  let name = objs.rows[i].value.common.name;
633
710
  if (typeof name === 'object') {
634
711
  name = name[lang] || name.en;
@@ -640,8 +717,8 @@ function List(options) {
640
717
  if (hostname.length < 15) {
641
718
  hostname += new Array(15 - hostname.length).join(' ');
642
719
  }
643
- const version = objs.rows[i].value.common.installedVersion;
644
- let alive = '';
720
+ const version = objs.rows[i].value.common.installedVersion;
721
+ let alive = '';
645
722
  let uptime = '';
646
723
  for (let k = 0; k < keys.length; k++) {
647
724
  if (keys[k] === objs.rows[i].value._id + '.alive') {
@@ -651,12 +728,24 @@ function List(options) {
651
728
  uptime = states[k].val;
652
729
  }
653
730
  }
654
- alive = alive ? 'alive' : ' dead';
731
+ alive = alive ? 'alive' : ' dead';
655
732
  //if (uptime.toString().length < 10) uptime = new Array(10 - uptime.toString().length).join(' ') + uptime.toString();
656
733
  if (!uptime) {
657
734
  uptime = '-';
658
735
  }
659
- const text = id + ' ' + name + ' (version: ' + version + ', hostname: ' + hostname + ', ' + alive + ', uptime: ' + uptime + ')';
736
+ const text =
737
+ id +
738
+ ' ' +
739
+ name +
740
+ ' (version: ' +
741
+ version +
742
+ ', hostname: ' +
743
+ hostname +
744
+ ', ' +
745
+ alive +
746
+ ', uptime: ' +
747
+ uptime +
748
+ ')';
660
749
  // todo
661
750
  console.log(text);
662
751
  }
@@ -670,15 +759,21 @@ function List(options) {
670
759
 
671
760
  case 'enums':
672
761
  case 'e':
673
- objects.getObjectList({startkey: 'enum.', endkey: 'enum.\u9999'}, (err, objs) => {
762
+ objects.getObjectList({ startkey: 'enum.', endkey: 'enum.\u9999' }, (err, objs) => {
674
763
  const reg = filter ? new RegExp(tools.pattern2RegEx('enum.' + filter)) : null;
675
764
  for (let i = 0; i < objs.rows.length; i++) {
676
765
  if (objs.rows[i].value.type !== 'enum') {
677
766
  continue;
678
767
  }
679
- if (!reg || reg.test(objs.rows[i].value._id) || (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))) {
680
- console.log('\n=====================================================================================');
681
- let id = objs.rows[i].value._id.substring(5);
768
+ if (
769
+ !reg ||
770
+ reg.test(objs.rows[i].value._id) ||
771
+ (objs.rows[i].value.common && reg.test(objs.rows[i].value.common.name))
772
+ ) {
773
+ console.log(
774
+ '\n====================================================================================='
775
+ );
776
+ let id = objs.rows[i].value._id.substring(5);
682
777
  let name = objs.rows[i].value.common.name;
683
778
  if (typeof name === 'object') {
684
779
  name = name[lang] || name.en;
@@ -687,7 +782,9 @@ function List(options) {
687
782
  id += new Array(20 - id.length).join(' ');
688
783
  }
689
784
  console.log(id + '(' + name + ')');
690
- console.log('-------------------------------------------------------------------------------------');
785
+ console.log(
786
+ '-------------------------------------------------------------------------------------'
787
+ );
691
788
 
692
789
  if (objs.rows[i].value.common.members) {
693
790
  console.log(objs.rows[i].value.common.members.join(', '));
@@ -700,19 +797,30 @@ function List(options) {
700
797
 
701
798
  case 'files':
702
799
  case 'f':
703
- objects.getObjectList({startkey: '', endkey: '\u9999'}, (err, objs) => {
800
+ objects.getObjectList({ startkey: '', endkey: '\u9999' }, (err, objs) => {
704
801
  const adapter = filter || null;
705
802
  const names = filter ? filter.split('/') : null;
706
803
  if (names && !names[0]) {
707
804
  names.splice(0, 1);
708
805
  }
709
806
 
710
- const adapters = objs.rows.filter(row => row.value.type === 'meta' && !(adapter && row.value._id !== names[0] && !row.value._id.startsWith(`${names[0]}.`))).map(row => row.value._id);
807
+ const adapters = objs.rows
808
+ .filter(
809
+ row =>
810
+ row.value.type === 'meta' &&
811
+ !(
812
+ adapter &&
813
+ row.value._id !== names[0] &&
814
+ !row.value._id.startsWith(`${names[0]}.`)
815
+ )
816
+ )
817
+ .map(row => row.value._id);
711
818
 
712
819
  names && names.shift();
713
820
 
714
821
  that.listAdaptersFiles(adapters, names ? names.join('/') : null, () =>
715
- setTimeout(processExit, 1000, null));
822
+ setTimeout(processExit, 1000, null)
823
+ );
716
824
  });
717
825
  break;
718
826
 
@@ -721,7 +829,9 @@ function List(options) {
721
829
  console.error('Unknown type: ' + type);
722
830
  processExit(EXIT_CODES.INVALID_ARGUMENTS);
723
831
  } else {
724
- console.log('Please specify type: objects, states, instances, adapters, users, groups, enums, files');
832
+ console.log(
833
+ 'Please specify type: objects, states, instances, adapters, users, groups, enums, files'
834
+ );
725
835
  processExit();
726
836
  }
727
837
  break;