@iobroker/js-controller-cli 4.0.21 → 4.1.0-alpha.0-20220819-74ceeddc
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/build/index.d.ts +89 -0
- package/{index.js → build/index.js} +7 -1
- package/build/lib/cli/cliCert.d.ts +16 -0
- package/build/lib/cli/cliCert.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliCert.js +5 -9
- package/build/lib/cli/cliCert.js.map +1 -0
- package/build/lib/cli/cliCommand.d.ts +24 -0
- package/build/lib/cli/cliCommand.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliCommand.js +2 -5
- package/build/lib/cli/cliCommand.js.map +1 -0
- package/build/lib/cli/cliCompact.d.ts +26 -0
- package/build/lib/cli/cliCompact.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliCompact.js +23 -43
- package/build/lib/cli/cliCompact.js.map +1 -0
- package/build/lib/cli/cliDebug.d.ts +19 -0
- package/build/lib/cli/cliDebug.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliDebug.js +6 -13
- package/build/lib/cli/cliDebug.js.map +1 -0
- package/build/lib/cli/cliHost.d.ts +36 -0
- package/build/lib/cli/cliHost.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliHost.js +22 -47
- package/build/lib/cli/cliHost.js.map +1 -0
- package/build/lib/cli/cliLogs.d.ts +58 -0
- package/build/lib/cli/cliLogs.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliLogs.js +16 -19
- package/build/lib/cli/cliLogs.js.map +1 -0
- package/build/lib/cli/cliMessage.d.ts +10 -0
- package/build/lib/cli/cliMessage.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliMessage.js +5 -7
- package/build/lib/cli/cliMessage.js.map +1 -0
- package/build/lib/cli/cliObjects.d.ts +105 -0
- package/build/lib/cli/cliObjects.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliObjects.js +69 -110
- package/build/lib/cli/cliObjects.js.map +1 -0
- package/build/lib/cli/cliPlugin.d.ts +23 -0
- package/build/lib/cli/cliPlugin.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliPlugin.js +24 -50
- package/build/lib/cli/cliPlugin.js.map +1 -0
- package/build/lib/cli/cliProcess.d.ts +50 -0
- package/build/lib/cli/cliProcess.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliProcess.js +50 -62
- package/build/lib/cli/cliProcess.js.map +1 -0
- package/build/lib/cli/cliStates.d.ts +51 -0
- package/build/lib/cli/cliStates.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliStates.js +64 -86
- package/build/lib/cli/cliStates.js.map +1 -0
- package/build/lib/cli/cliTools.d.ts +64 -0
- package/build/lib/cli/cliTools.d.ts.map +1 -0
- package/{lib → build/lib}/cli/cliTools.js +1 -12
- package/build/lib/cli/cliTools.js.map +1 -0
- package/build/lib/cli/messages.d.ts +53 -0
- package/build/lib/cli/messages.d.ts.map +1 -0
- package/{lib → build/lib}/cli/messages.js +27 -66
- package/build/lib/cli/messages.js.map +1 -0
- package/build/lib/setup/setupBackup.d.ts +126 -0
- package/build/lib/setup/setupBackup.d.ts.map +1 -0
- package/build/lib/setup/setupBackup.js +1031 -0
- package/build/lib/setup/setupBackup.js.map +1 -0
- package/build/lib/setup/setupInstall.d.ts +23 -0
- package/build/lib/setup/setupInstall.d.ts.map +1 -0
- package/build/lib/setup/setupInstall.js +1620 -0
- package/build/lib/setup/setupInstall.js.map +1 -0
- package/build/lib/setup/setupList.d.ts +49 -0
- package/build/lib/setup/setupList.d.ts.map +1 -0
- package/build/lib/setup/setupList.js +722 -0
- package/build/lib/setup/setupList.js.map +1 -0
- package/build/lib/setup/setupPacketManager.d.ts +65 -0
- package/build/lib/setup/setupPacketManager.d.ts.map +1 -0
- package/build/lib/setup/setupPacketManager.js +216 -0
- package/build/lib/setup/setupPacketManager.js.map +1 -0
- package/build/lib/setup/setupUpload.d.ts +72 -0
- package/build/lib/setup/setupUpload.d.ts.map +1 -0
- package/build/lib/setup/setupUpload.js +784 -0
- package/build/lib/setup/setupUpload.js.map +1 -0
- package/package.json +18 -11
- package/lib/setup/setupList.js +0 -840
|
@@ -5,21 +5,18 @@ const { enumHosts, enumObjects, getObjectFrom, enumInstances } = require('./cliT
|
|
|
5
5
|
const { tools } = require('@iobroker/js-controller-common');
|
|
6
6
|
const os = require('os');
|
|
7
7
|
const fs = require('fs-extra');
|
|
8
|
-
|
|
9
8
|
/** Command iobroker host ... */
|
|
10
9
|
module.exports = class CLIHost extends CLICommand {
|
|
11
10
|
/** @param {import('./cliCommand').CLICommandOptions} options */
|
|
12
11
|
constructor(options) {
|
|
13
12
|
super(options);
|
|
14
13
|
}
|
|
15
|
-
|
|
16
14
|
/**
|
|
17
15
|
* Executes a command
|
|
18
16
|
* @param {any[]} args
|
|
19
17
|
*/
|
|
20
18
|
execute(args) {
|
|
21
19
|
const command = args[0];
|
|
22
|
-
|
|
23
20
|
switch (command) {
|
|
24
21
|
case 'this':
|
|
25
22
|
case 'self':
|
|
@@ -32,7 +29,6 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
32
29
|
return this.rename(args);
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
/**
|
|
37
33
|
* When in single-host mode, changes the hostname of the host and all instances to the current one
|
|
38
34
|
* @param {any[]} _args
|
|
@@ -40,53 +36,44 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
40
36
|
self(_args) {
|
|
41
37
|
this.renameHost(undefined, os.hostname());
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
/**
|
|
45
40
|
* Changes the current host's hostname to the given one
|
|
46
41
|
* @param {any[]} args
|
|
47
42
|
*/
|
|
48
43
|
set(args) {
|
|
49
44
|
const { callback } = this.options;
|
|
50
|
-
|
|
51
45
|
/** @type {string} */
|
|
52
46
|
const newHostname = args[1];
|
|
53
47
|
if (!newHostname) {
|
|
54
48
|
CLI.error.requiredArgumentMissing('newHostname', 'host set newHostname');
|
|
55
49
|
return void callback(34);
|
|
56
50
|
}
|
|
57
|
-
|
|
58
51
|
this.renameHost(tools.getHostName(), newHostname);
|
|
59
52
|
}
|
|
60
|
-
|
|
61
53
|
/**
|
|
62
54
|
* Removes the host with the given name
|
|
63
55
|
* @param {any[]} args
|
|
64
56
|
*/
|
|
65
57
|
remove(args) {
|
|
66
58
|
const { callback, dbConnect } = this.options;
|
|
67
|
-
|
|
68
59
|
/** @type {string} */
|
|
69
60
|
const hostname = args[1];
|
|
70
61
|
if (!hostname) {
|
|
71
62
|
CLI.error.requiredArgumentMissing('hostname', 'host remove hostname');
|
|
72
63
|
return void callback(34);
|
|
73
64
|
}
|
|
74
|
-
|
|
75
65
|
const newHostname = tools.getHostName();
|
|
76
|
-
|
|
77
66
|
if (hostname === newHostname) {
|
|
78
67
|
// avoid object deletion when target host is same host
|
|
79
68
|
CLI.error.dontRemoveCurrentHost(hostname);
|
|
80
69
|
return void callback(35);
|
|
81
70
|
}
|
|
82
|
-
|
|
83
71
|
dbConnect(async (objects, states, isOffline) => {
|
|
84
72
|
try {
|
|
85
73
|
if (!isOffline) {
|
|
86
74
|
CLI.error.cannotChangeRunningSystem();
|
|
87
75
|
return void callback(30);
|
|
88
76
|
}
|
|
89
|
-
|
|
90
77
|
// Find the requested host object
|
|
91
78
|
const hosts = await enumHosts(objects);
|
|
92
79
|
const hostToDelete = hosts.find(host => host.common.hostname === hostname);
|
|
@@ -94,15 +81,14 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
94
81
|
CLI.error.hostDoesNotExist(hostname);
|
|
95
82
|
return void callback(30);
|
|
96
83
|
}
|
|
97
|
-
|
|
98
84
|
// Delete it
|
|
99
85
|
try {
|
|
100
86
|
await objects.delObjectAsync(hostToDelete._id);
|
|
101
|
-
}
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
102
89
|
CLI.error.cannotDeleteObject(hostToDelete._id, err.message);
|
|
103
90
|
return void callback(30);
|
|
104
91
|
}
|
|
105
|
-
|
|
106
92
|
// Also delete its states
|
|
107
93
|
const hostStates = await enumObjects(objects, 'state', `system.host.${hostname}.`);
|
|
108
94
|
for (const state of hostStates) {
|
|
@@ -110,46 +96,41 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
110
96
|
try {
|
|
111
97
|
await objects.delObjectAsync(state._id);
|
|
112
98
|
CLI.success.stateDeleted(state._id);
|
|
113
|
-
}
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
114
101
|
CLI.error.cannotDeleteObject(state._id, err.message);
|
|
115
102
|
}
|
|
116
103
|
}
|
|
117
|
-
|
|
118
104
|
// Move all instances from the deleted host to the current one
|
|
119
105
|
const instances = await enumInstances(objects);
|
|
120
106
|
const instancesToRename = instances.filter(i => i.common.host === hostname);
|
|
121
107
|
for (const instance of instancesToRename) {
|
|
122
108
|
await changeInstanceHost(objects, instance, newHostname);
|
|
123
109
|
}
|
|
124
|
-
|
|
125
110
|
// Notify the user that we are done
|
|
126
111
|
CLI.success.hostDeleted(hostname);
|
|
127
112
|
return void callback();
|
|
128
|
-
}
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
129
115
|
CLI.error.unknown(err.message);
|
|
130
116
|
return void callback(1);
|
|
131
117
|
}
|
|
132
118
|
});
|
|
133
119
|
}
|
|
134
|
-
|
|
135
120
|
/**
|
|
136
121
|
* Renames the host with the given name to the current one (opposite of `set()`)
|
|
137
122
|
* @param {any[]} args
|
|
138
123
|
*/
|
|
139
124
|
rename(args) {
|
|
140
125
|
const { callback } = this.options;
|
|
141
|
-
|
|
142
126
|
/** @type {string} */
|
|
143
127
|
const oldHostname = args[0];
|
|
144
|
-
|
|
145
128
|
if (!oldHostname) {
|
|
146
129
|
CLI.error.requiredArgumentMissing('oldHostname', 'host oldHostname');
|
|
147
130
|
return void callback(34);
|
|
148
131
|
}
|
|
149
|
-
|
|
150
132
|
this.renameHost(oldHostname, os.hostname());
|
|
151
133
|
}
|
|
152
|
-
|
|
153
134
|
/**
|
|
154
135
|
* Renames the host with the hostname `oldHostname` to the hostname `newHostname`
|
|
155
136
|
* @param {string?} oldHostname The hostname to rename from or `undefined` to rename all hosts (single-host mode only!)
|
|
@@ -163,7 +144,6 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
163
144
|
CLI.error.cannotChangeRunningSystem();
|
|
164
145
|
return void callback(30);
|
|
165
146
|
}
|
|
166
|
-
|
|
167
147
|
const hosts = await enumHosts(objects);
|
|
168
148
|
if (hosts.length > 1 && oldHostname === undefined) {
|
|
169
149
|
// iobroker host this/self in multihost is not allowed
|
|
@@ -171,14 +151,12 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
171
151
|
showHelp();
|
|
172
152
|
return void callback(30);
|
|
173
153
|
}
|
|
174
|
-
|
|
175
154
|
// Does another host with the target name exist?
|
|
176
155
|
if (hosts.find(obj => obj.common.hostname === newHostname)) {
|
|
177
156
|
// TODO: This prevents migration of instances if host already exists, but we need it to prevent multiple hosts with same name
|
|
178
157
|
CLI.error.hostAlreadyExists(newHostname);
|
|
179
158
|
return void callback(30);
|
|
180
159
|
}
|
|
181
|
-
|
|
182
160
|
// Remember the new hostname in the system settings
|
|
183
161
|
const configFileName = tools.getConfigFileName();
|
|
184
162
|
const configData = fs.readJSONSync(configFileName);
|
|
@@ -186,26 +164,23 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
186
164
|
configData.system.hostname = newHostname;
|
|
187
165
|
fs.writeFileSync(configFileName, JSON.stringify(configData, null, 2), 'utf8');
|
|
188
166
|
}
|
|
189
|
-
|
|
190
167
|
// Rename the host(s)
|
|
191
168
|
for (const host of hosts) {
|
|
192
169
|
// Remember the current hostname of this object because we need it later
|
|
193
170
|
const prevHostname = host.common.hostname;
|
|
194
|
-
|
|
195
171
|
// Rename only the hostname we're supposed to rename!
|
|
196
172
|
if (oldHostname && prevHostname !== oldHostname) {
|
|
197
173
|
continue;
|
|
198
174
|
}
|
|
199
|
-
|
|
200
175
|
// Rename the host object
|
|
201
176
|
// Therefore delete the old one because we will recreate it under a new name
|
|
202
177
|
try {
|
|
203
178
|
await objects.delObjectAsync(host._id);
|
|
204
|
-
}
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
205
181
|
CLI.error.cannotDeleteObject(host._id, err.message);
|
|
206
182
|
continue;
|
|
207
183
|
}
|
|
208
|
-
|
|
209
184
|
// Now update the object
|
|
210
185
|
Object.assign(host, {
|
|
211
186
|
_id: `system.host.${newHostname}`,
|
|
@@ -222,11 +197,11 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
222
197
|
// And save it
|
|
223
198
|
try {
|
|
224
199
|
await objects.setObjectAsync(host._id, host);
|
|
225
|
-
}
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
226
202
|
CLI.error.cannotChangeObject(host._id, err.message);
|
|
227
203
|
continue;
|
|
228
204
|
}
|
|
229
|
-
|
|
230
205
|
// Rename its states
|
|
231
206
|
const hostStateObjects = await enumObjects(objects, 'state', `system.host.${prevHostname}.`);
|
|
232
207
|
const hostFolders = await enumObjects(objects, 'folder', `system.host.${prevHostname}.`);
|
|
@@ -234,50 +209,48 @@ module.exports = class CLIHost extends CLICommand {
|
|
|
234
209
|
// Therefore delete the old one because we will recreate it under a new name
|
|
235
210
|
try {
|
|
236
211
|
await objects.delObjectAsync(object._id);
|
|
237
|
-
}
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
238
214
|
CLI.error.cannotDeleteObject(object._id, err.message);
|
|
239
215
|
continue;
|
|
240
216
|
}
|
|
241
|
-
|
|
242
217
|
// Now update the object
|
|
243
218
|
Object.assign(object, {
|
|
244
219
|
_id: object._id.replace(`system.host.${prevHostname}`, `system.host.${newHostname}`),
|
|
245
220
|
from: getObjectFrom(),
|
|
246
221
|
ts: Date.now()
|
|
247
222
|
});
|
|
248
|
-
|
|
249
223
|
// And save it
|
|
250
224
|
try {
|
|
251
225
|
await objects.setObjectAsync(object._id, object);
|
|
252
|
-
}
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
253
228
|
CLI.error.cannotChangeObject(object._id, err.message);
|
|
254
229
|
}
|
|
255
230
|
}
|
|
256
|
-
|
|
257
231
|
CLI.success.hostRenamed(prevHostname, newHostname);
|
|
258
232
|
}
|
|
259
|
-
|
|
260
233
|
// Also rename all instances
|
|
261
234
|
const instances = await enumInstances(objects);
|
|
262
|
-
const instancesToRename =
|
|
263
|
-
oldHostname === undefined ? instances : instances.filter(i => i.common.host === oldHostname);
|
|
235
|
+
const instancesToRename = oldHostname === undefined ? instances : instances.filter(i => i.common.host === oldHostname);
|
|
264
236
|
if (instancesToRename.length > 0) {
|
|
265
237
|
for (const instance of instancesToRename) {
|
|
266
238
|
// Update each instance object
|
|
267
239
|
await changeInstanceHost(objects, instance, newHostname);
|
|
268
240
|
}
|
|
269
|
-
}
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
270
243
|
CLI.warn.noInstancesFoundOnHost(oldHostname);
|
|
271
244
|
}
|
|
272
245
|
return void callback();
|
|
273
|
-
}
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
274
248
|
CLI.error.unknown(err.message);
|
|
275
249
|
return void callback(1);
|
|
276
250
|
}
|
|
277
251
|
});
|
|
278
252
|
}
|
|
279
253
|
};
|
|
280
|
-
|
|
281
254
|
/**
|
|
282
255
|
* Changes the host an instance is running on
|
|
283
256
|
* @param {any} objects The objects DB to use
|
|
@@ -294,8 +267,10 @@ async function changeInstanceHost(objects, instance, newHostname) {
|
|
|
294
267
|
try {
|
|
295
268
|
await objects.setObjectAsync(instance._id, instance);
|
|
296
269
|
CLI.success.instanceHostChanged(instance._id, oldInstanceHost, newHostname);
|
|
297
|
-
}
|
|
270
|
+
}
|
|
271
|
+
catch (e) {
|
|
298
272
|
CLI.error.cannotChangeObject(instance._id, e.message);
|
|
299
273
|
// resolve anyways, we don't want to cause errors
|
|
300
274
|
}
|
|
301
275
|
}
|
|
276
|
+
//# sourceMappingURL=cliHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliHost.js","sourceRoot":"","sources":["../../../src/lib/cli/cliHost.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export = CLILogs;
|
|
2
|
+
declare class CLILogs extends CLICommand {
|
|
3
|
+
/** @param {CLICommandOptions} options */
|
|
4
|
+
constructor(options: CLICommandOptions);
|
|
5
|
+
/** @type {Map<string, number>} */
|
|
6
|
+
fileSizes: Map<string, number>;
|
|
7
|
+
isReady: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Executes a command
|
|
10
|
+
* @param {any[]} args
|
|
11
|
+
*/
|
|
12
|
+
execute(args: any[], params: any): void;
|
|
13
|
+
/**
|
|
14
|
+
* @typedef CLILogsOptions
|
|
15
|
+
* @property {boolean} [complete] Whether to show today's full log
|
|
16
|
+
* @property {RegExp} [regex] An optional RegExp to filter by
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Called by chokidar when watched files change
|
|
20
|
+
* @param {CLILogsOptions} options some options
|
|
21
|
+
* @param {string} event The type of change
|
|
22
|
+
* @param {*} path Which path has changed
|
|
23
|
+
* @param {*} stats Information about the file
|
|
24
|
+
*/
|
|
25
|
+
watchHandler(options: {
|
|
26
|
+
/**
|
|
27
|
+
* Whether to show today's full log
|
|
28
|
+
*/
|
|
29
|
+
complete?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* An optional RegExp to filter by
|
|
32
|
+
*/
|
|
33
|
+
regex?: RegExp | undefined;
|
|
34
|
+
}, event: string, path: any, stats: any): void;
|
|
35
|
+
/**
|
|
36
|
+
* If the log file belongs to today
|
|
37
|
+
* @param {string} path The log file path
|
|
38
|
+
*/
|
|
39
|
+
isTodaysLogfile(path: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Streams a portion of a file to the console
|
|
42
|
+
* @param {string} path The file to stream
|
|
43
|
+
* @param {number} start The offset in bytes where to start
|
|
44
|
+
* @param {CLILogsOptions} options some options
|
|
45
|
+
*/
|
|
46
|
+
streamChange(path: string, start: number, options: {
|
|
47
|
+
/**
|
|
48
|
+
* Whether to show today's full log
|
|
49
|
+
*/
|
|
50
|
+
complete?: boolean | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* An optional RegExp to filter by
|
|
53
|
+
*/
|
|
54
|
+
regex?: RegExp | undefined;
|
|
55
|
+
}): void;
|
|
56
|
+
}
|
|
57
|
+
import CLICommand = require("./cliCommand.js");
|
|
58
|
+
//# sourceMappingURL=cliLogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliLogs.d.ts","sourceRoot":"","sources":["../../../src/lib/cli/cliLogs.js"],"names":[],"mappings":";AAWiB;IACb,yCAAyC;IACzC,wCAKC;IAHG,kCAAkC;IAClC,WADW,IAAI,MAAM,EAAE,MAAM,CAAC,CACJ;IAC1B,iBAAoB;IAGxB;;;OAGG;IACH,cAFW,GAAG,EAAE,qBA8Cf;IAED;;;;OAIG;IAEH;;;;;;OAMG;IACH;;;;;;;;;cAJW,MAAM,+BAmBhB;IAED;;;OAGG;IACH,sBAFW,MAAM,WAKhB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,SACN,MAAM;;;;;;;;;aAqBhB;CACJ"}
|
|
@@ -7,17 +7,15 @@ const fs = require('fs-extra');
|
|
|
7
7
|
const os = require('os');
|
|
8
8
|
const es = require('event-stream');
|
|
9
9
|
const { tools } = require('@iobroker/js-controller-common');
|
|
10
|
-
|
|
11
10
|
/** Command ioBroker state ... */
|
|
12
11
|
module.exports = class CLILogs extends CLICommand {
|
|
13
|
-
/** @param {
|
|
12
|
+
/** @param {CLICommandOptions} options */
|
|
14
13
|
constructor(options) {
|
|
15
14
|
super(options);
|
|
16
15
|
/** @type {Map<string, number>} */
|
|
17
16
|
this.fileSizes = new Map();
|
|
18
17
|
this.isReady = false;
|
|
19
18
|
}
|
|
20
|
-
|
|
21
19
|
/**
|
|
22
20
|
* Executes a command
|
|
23
21
|
* @param {any[]} args
|
|
@@ -29,10 +27,8 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
29
27
|
const count = params.lines || 1000;
|
|
30
28
|
/** @type {CLILogsOptions} */
|
|
31
29
|
const options = {
|
|
32
|
-
complete: this.options['all']
|
|
33
|
-
adapterName
|
|
30
|
+
complete: this.options['all']
|
|
34
31
|
};
|
|
35
|
-
|
|
36
32
|
const config = fs.readJSONSync(require.resolve(getConfigFileName()));
|
|
37
33
|
const logger = require('@iobroker/js-controller-common').logger(config.log);
|
|
38
34
|
let fileName = logger.getFileName();
|
|
@@ -45,7 +41,8 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
45
41
|
let regex;
|
|
46
42
|
if (adapterName) {
|
|
47
43
|
//2019-03-02 13:26:54.698 - debug: iot.0 [ALEXA] Created ALEXA device: Bad.Hauptlicht.Aktor.STATE ["turnOn","turnOff"]
|
|
48
|
-
regex = new RegExp(
|
|
44
|
+
regex = new RegExp(`: ${adapterName}\\.`);
|
|
45
|
+
options.regex = regex;
|
|
49
46
|
}
|
|
50
47
|
lines.forEach(line => {
|
|
51
48
|
if (regex && !regex.test(line)) {
|
|
@@ -53,7 +50,6 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
53
50
|
}
|
|
54
51
|
console.log(line);
|
|
55
52
|
});
|
|
56
|
-
|
|
57
53
|
if (watch) {
|
|
58
54
|
fileName = fileName.replace(/\\/g, '/');
|
|
59
55
|
const parts = fileName.split('/');
|
|
@@ -63,17 +59,16 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
63
59
|
.on('all', this.watchHandler.bind(this, options))
|
|
64
60
|
.on('ready', () => (this.isReady = true));
|
|
65
61
|
}
|
|
66
|
-
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
67
64
|
console.log('No log file found');
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
|
|
71
67
|
/**
|
|
72
68
|
* @typedef CLILogsOptions
|
|
73
69
|
* @property {boolean} [complete] Whether to show today's full log
|
|
74
|
-
* @property {
|
|
70
|
+
* @property {RegExp} [regex] An optional RegExp to filter by
|
|
75
71
|
*/
|
|
76
|
-
|
|
77
72
|
/**
|
|
78
73
|
* Called by chokidar when watched files change
|
|
79
74
|
* @param {CLILogsOptions} options some options
|
|
@@ -87,17 +82,18 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
87
82
|
if (stats.size > 0 && (this.isReady || (options.complete && this.isTodaysLogfile(path)))) {
|
|
88
83
|
this.streamChange(path, 0, options);
|
|
89
84
|
}
|
|
90
|
-
}
|
|
85
|
+
}
|
|
86
|
+
else if (event === 'change') {
|
|
91
87
|
const oldFileSize = this.fileSizes.get(path);
|
|
92
88
|
this.fileSizes.set(path, stats.size);
|
|
93
89
|
if (this.isReady && stats.size > oldFileSize) {
|
|
94
90
|
this.streamChange(path, oldFileSize, options);
|
|
95
91
|
}
|
|
96
|
-
}
|
|
92
|
+
}
|
|
93
|
+
else if (event === 'unlink') {
|
|
97
94
|
this.fileSizes.delete(path);
|
|
98
95
|
}
|
|
99
96
|
}
|
|
100
|
-
|
|
101
97
|
/**
|
|
102
98
|
* If the log file belongs to today
|
|
103
99
|
* @param {string} path The log file path
|
|
@@ -106,7 +102,6 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
106
102
|
const YYYYMMDDDate = new Date().toJSON().slice(0, 10);
|
|
107
103
|
return path.includes(YYYYMMDDDate);
|
|
108
104
|
}
|
|
109
|
-
|
|
110
105
|
/**
|
|
111
106
|
* Streams a portion of a file to the console
|
|
112
107
|
* @param {string} path The file to stream
|
|
@@ -119,17 +114,19 @@ module.exports = class CLILogs extends CLICommand {
|
|
|
119
114
|
start,
|
|
120
115
|
autoClose: true
|
|
121
116
|
});
|
|
122
|
-
if (options.
|
|
117
|
+
if (options.regex) {
|
|
123
118
|
// Read the input line by line and only include the lines matching the filter
|
|
124
119
|
input
|
|
125
120
|
.pipe(es.split())
|
|
126
121
|
// @ts-ignore
|
|
127
|
-
.pipe(es.filterSync(line =>
|
|
122
|
+
.pipe(es.filterSync(line => options.regex.test(line)))
|
|
128
123
|
.pipe(es.mapSync(line => line + os.EOL))
|
|
129
124
|
.pipe(process.stdout);
|
|
130
|
-
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
131
127
|
// just pipe the input through
|
|
132
128
|
tools.pipeLinewise(input, process.stdout);
|
|
133
129
|
}
|
|
134
130
|
}
|
|
135
131
|
};
|
|
132
|
+
//# sourceMappingURL=cliLogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliLogs.js","sourceRoot":"","sources":["../../../src/lib/cli/cliLogs.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliMessage.d.ts","sourceRoot":"","sources":["../../../src/lib/cli/cliMessage.js"],"names":[],"mappings":";AAOiB;IAMb;;;OAGG;IACH,cAFW,GAAG,EAAE,aAyDf;CACJ"}
|
|
@@ -3,14 +3,12 @@ const CLI = require('./messages.js');
|
|
|
3
3
|
const CLICommand = require('./cliCommand.js');
|
|
4
4
|
// const tools = require('../tools.js');
|
|
5
5
|
const { enumInstances } = require('./cliTools');
|
|
6
|
-
|
|
7
6
|
/** Command iobroker object ... */
|
|
8
7
|
module.exports = class CLIMessage extends CLICommand {
|
|
9
8
|
/** @param {import('./cliCommand').CLICommandOptions} options */
|
|
10
9
|
constructor(options) {
|
|
11
10
|
super(options);
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
/**
|
|
15
13
|
* Executes a command
|
|
16
14
|
* @param {any[]} args
|
|
@@ -38,7 +36,6 @@ module.exports = class CLIMessage extends CLICommand {
|
|
|
38
36
|
if (typeof message === 'string' && message.startsWith('{') && message.endsWith('}')) {
|
|
39
37
|
message = JSON.parse(message);
|
|
40
38
|
}
|
|
41
|
-
|
|
42
39
|
dbConnect(async (objects, states) => {
|
|
43
40
|
try {
|
|
44
41
|
const pos = adapter.indexOf('.');
|
|
@@ -57,22 +54,22 @@ module.exports = class CLIMessage extends CLICommand {
|
|
|
57
54
|
return void callback(1);
|
|
58
55
|
}
|
|
59
56
|
messageTargets = adapterInstances.map(row => row._id);
|
|
60
|
-
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
61
59
|
messageTargets.unshift(`system.adapter.${adapter}.${instance}`);
|
|
62
60
|
}
|
|
63
|
-
|
|
64
61
|
// Send the message to all targets
|
|
65
62
|
const messagePromises = messageTargets.map(t => sendMessage(states, t, command, message));
|
|
66
63
|
await Promise.all(messagePromises);
|
|
67
64
|
return void callback();
|
|
68
|
-
}
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
69
67
|
CLI.error.unknown(err.message);
|
|
70
68
|
return void callback(1);
|
|
71
69
|
}
|
|
72
70
|
});
|
|
73
71
|
}
|
|
74
72
|
};
|
|
75
|
-
|
|
76
73
|
/**
|
|
77
74
|
* @param {any} states The States DB
|
|
78
75
|
* @param {string} targetId The instance or adapter to send the message to
|
|
@@ -88,3 +85,4 @@ function sendMessage(states, targetId, command, message) {
|
|
|
88
85
|
});
|
|
89
86
|
});
|
|
90
87
|
}
|
|
88
|
+
//# sourceMappingURL=cliMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliMessage.js","sourceRoot":"","sources":["../../../src/lib/cli/cliMessage.js"],"names":[],"mappings":"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"}
|