@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,16 +5,13 @@ const { getObjectFrom } = require('./cliTools');
|
|
|
5
5
|
const { tools } = require('@iobroker/js-controller-common');
|
|
6
6
|
const fs = require('fs');
|
|
7
7
|
const path = require('path');
|
|
8
|
-
|
|
9
8
|
const controllerIoPackPath = require.resolve('iobroker.js-controller/io-package.json');
|
|
10
|
-
|
|
11
9
|
/** Command iobroker plugin <enable/disable/status> <pluginname> [--host this/hostname] ... */
|
|
12
10
|
module.exports = class CLIPlugin extends CLICommand {
|
|
13
11
|
/** @param {CLICommandOptions} options */
|
|
14
12
|
constructor(options) {
|
|
15
13
|
super(options);
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
/**
|
|
19
16
|
* Executes a command
|
|
20
17
|
* @param {any[]} args
|
|
@@ -22,7 +19,6 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
22
19
|
execute(args) {
|
|
23
20
|
const { callback, showHelp } = this.options;
|
|
24
21
|
const command = args[0];
|
|
25
|
-
|
|
26
22
|
switch (command) {
|
|
27
23
|
case 'on':
|
|
28
24
|
case 'enable':
|
|
@@ -38,7 +34,6 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
38
34
|
return void callback(3);
|
|
39
35
|
}
|
|
40
36
|
}
|
|
41
|
-
|
|
42
37
|
/**
|
|
43
38
|
* Enables or disables the given plugin
|
|
44
39
|
* @param {any[]} args
|
|
@@ -52,26 +47,24 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
52
47
|
CLI.error.requiredArgumentMissing('pluginName', 'plugin enable <pluginname>');
|
|
53
48
|
return void callback(34);
|
|
54
49
|
}
|
|
55
|
-
|
|
56
50
|
/** @type {string | undefined} */
|
|
57
51
|
let hostname;
|
|
58
52
|
/** @type {string | undefined} */
|
|
59
53
|
let instance;
|
|
60
|
-
|
|
61
54
|
if (this.options.adapter || this.options.instance) {
|
|
62
55
|
instance = this.options.adapter || this.options.instance;
|
|
63
56
|
// default to instance 0
|
|
64
57
|
if (!/\.\d+$/.test(instance)) {
|
|
65
58
|
instance += '.0';
|
|
66
59
|
}
|
|
67
|
-
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
68
62
|
// Use host if no adapter was specified and fallback to the current one
|
|
69
63
|
hostname = this.options.host;
|
|
70
64
|
if (!hostname || hostname === 'this') {
|
|
71
65
|
hostname = tools.getHostName();
|
|
72
66
|
}
|
|
73
67
|
}
|
|
74
|
-
|
|
75
68
|
dbConnect(async (objects, states, _isOffline, _dbType, iobrokerJson) => {
|
|
76
69
|
try {
|
|
77
70
|
// Check if the host or instance exists
|
|
@@ -83,7 +76,8 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
83
76
|
CLI.error.hostDoesNotExist(hostname);
|
|
84
77
|
return void callback(30);
|
|
85
78
|
}
|
|
86
|
-
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
87
81
|
objectNamespace = `system.adapter.${instance}`;
|
|
88
82
|
const instanceObject = await objects.getObject(objectNamespace);
|
|
89
83
|
if (!instanceObject) {
|
|
@@ -91,13 +85,11 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
91
85
|
return void callback(30);
|
|
92
86
|
}
|
|
93
87
|
}
|
|
94
|
-
|
|
95
88
|
// Check if the plugin is defined
|
|
96
89
|
if (!pluginExists(pluginName, iobrokerJson, instance)) {
|
|
97
90
|
CLI.error.pluginNotDefined(pluginName, hostname, instance);
|
|
98
91
|
return void callback(30);
|
|
99
92
|
}
|
|
100
|
-
|
|
101
93
|
// Create the plugin state if it does not exist
|
|
102
94
|
const pluginsFolderId = `${objectNamespace}.plugins`;
|
|
103
95
|
if (!(await objects.getObjectAsync(pluginsFolderId))) {
|
|
@@ -133,23 +125,21 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
133
125
|
native: {}
|
|
134
126
|
});
|
|
135
127
|
}
|
|
136
|
-
|
|
137
128
|
// Update the state
|
|
138
129
|
await states.setStateAsync(pluginEnabledId, {
|
|
139
130
|
val: enabled,
|
|
140
131
|
from: getObjectFrom()
|
|
141
132
|
});
|
|
142
|
-
|
|
143
133
|
// Notify the user that we are done
|
|
144
134
|
CLI.success.pluginEnabledOrDisabled(pluginName, hostname, instance, enabled);
|
|
145
135
|
return void callback();
|
|
146
|
-
}
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
147
138
|
CLI.error.unknown(err.message);
|
|
148
139
|
return void callback(1);
|
|
149
140
|
}
|
|
150
141
|
});
|
|
151
142
|
}
|
|
152
|
-
|
|
153
143
|
/**
|
|
154
144
|
* Prints the status of the given plugin
|
|
155
145
|
* @param {any[]} args
|
|
@@ -162,26 +152,24 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
162
152
|
CLI.error.requiredArgumentMissing('pluginName', 'plugin status <pluginname>');
|
|
163
153
|
return void callback(34);
|
|
164
154
|
}
|
|
165
|
-
|
|
166
155
|
/** @type {string | undefined} */
|
|
167
156
|
let hostname;
|
|
168
157
|
/** @type {string | undefined} */
|
|
169
158
|
let instance;
|
|
170
|
-
|
|
171
159
|
if (this.options.adapter || this.options.instance) {
|
|
172
160
|
instance = this.options.adapter || this.options.instance;
|
|
173
161
|
// default to instance 0
|
|
174
162
|
if (!/\.\d+$/.test(instance)) {
|
|
175
163
|
instance += '.0';
|
|
176
164
|
}
|
|
177
|
-
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
178
167
|
// Use host if no adapter was specified and fallback to the current one
|
|
179
168
|
hostname = this.options.host;
|
|
180
169
|
if (!hostname || hostname === 'this') {
|
|
181
170
|
hostname = tools.getHostName();
|
|
182
171
|
}
|
|
183
172
|
}
|
|
184
|
-
|
|
185
173
|
dbConnect(async (objects, states, _isOffline, _dbType, iobrokerJson) => {
|
|
186
174
|
try {
|
|
187
175
|
// Check if the host or instance exists
|
|
@@ -193,7 +181,8 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
193
181
|
CLI.error.hostDoesNotExist(hostname);
|
|
194
182
|
return void callback(30);
|
|
195
183
|
}
|
|
196
|
-
}
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
197
186
|
objectNamespace = `system.adapter.${instance}`;
|
|
198
187
|
const instanceObject = await objects.getObject(objectNamespace);
|
|
199
188
|
if (!instanceObject) {
|
|
@@ -201,44 +190,35 @@ module.exports = class CLIPlugin extends CLICommand {
|
|
|
201
190
|
return void callback(30);
|
|
202
191
|
}
|
|
203
192
|
}
|
|
204
|
-
|
|
205
193
|
// Check if the plugin is defined
|
|
206
194
|
if (!pluginExists(pluginName, iobrokerJson, instance)) {
|
|
207
195
|
CLI.error.pluginNotDefined(pluginName, hostname, instance);
|
|
208
196
|
return void callback(30);
|
|
209
197
|
}
|
|
210
|
-
|
|
211
198
|
const pluginEnabledId = `${objectNamespace}.plugins.${pluginName}.enabled`;
|
|
212
|
-
|
|
213
199
|
// Read the state
|
|
214
200
|
try {
|
|
215
201
|
const { val } = await states.getStateAsync(pluginEnabledId);
|
|
216
|
-
|
|
217
202
|
if (typeof val === 'boolean') {
|
|
218
203
|
CLI.success.pluginStatus(pluginName, hostname, instance, val);
|
|
219
204
|
return void callback();
|
|
220
205
|
}
|
|
221
|
-
}
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
222
208
|
/* ignore */
|
|
223
209
|
}
|
|
224
|
-
|
|
225
210
|
// If the state could not be read or had no value, fall back to the configuration
|
|
226
|
-
const enabled = pluginEnabled(
|
|
227
|
-
pluginName,
|
|
228
|
-
instance,
|
|
229
|
-
await objects.getObjectAsync('system.config'),
|
|
230
|
-
iobrokerJson
|
|
231
|
-
);
|
|
211
|
+
const enabled = pluginEnabled(pluginName, instance, await objects.getObjectAsync('system.config'), iobrokerJson);
|
|
232
212
|
CLI.success.pluginStatus(pluginName, hostname, instance, enabled);
|
|
233
213
|
return void callback();
|
|
234
|
-
}
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
235
216
|
CLI.error.unknown(err.message);
|
|
236
217
|
return void callback(1);
|
|
237
218
|
}
|
|
238
219
|
});
|
|
239
220
|
}
|
|
240
221
|
};
|
|
241
|
-
|
|
242
222
|
/**
|
|
243
223
|
* Checks if a plugin exists and can be configured
|
|
244
224
|
* @param {string} pluginName
|
|
@@ -254,14 +234,13 @@ function pluginExists(pluginName, iobrokerJson, adapter) {
|
|
|
254
234
|
if (ioPack && ioPack.common && ioPack.common.plugins && pluginName in ioPack.common.plugins) {
|
|
255
235
|
return true;
|
|
256
236
|
}
|
|
257
|
-
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
258
239
|
/* ignore */
|
|
259
240
|
}
|
|
260
|
-
|
|
261
241
|
// 2. check if the plugin is defined in iobroker.json
|
|
262
242
|
return iobrokerJson && iobrokerJson.plugins && pluginName in iobrokerJson.plugins;
|
|
263
243
|
}
|
|
264
|
-
|
|
265
244
|
/**
|
|
266
245
|
* Checks if a plugin exists and can be configured
|
|
267
246
|
* @param {string} pluginName
|
|
@@ -274,35 +253,30 @@ function pluginEnabled(pluginName, adapter, systemConfig, iobrokerJson) {
|
|
|
274
253
|
if (systemConfig && systemConfig.common && systemConfig.common.diag === 'none') {
|
|
275
254
|
return false;
|
|
276
255
|
}
|
|
277
|
-
|
|
278
256
|
// 2. check if the plugin is disabled in io-package.json
|
|
279
257
|
// TODO: replace this with fs-extra methods #799
|
|
280
258
|
try {
|
|
281
259
|
const ioPackPath = adapter ? path.join(tools.getAdapterDir(adapter), 'io-package.json') : controllerIoPackPath;
|
|
282
260
|
const ioPack = JSON.parse(fs.readFileSync(ioPackPath, 'utf8'));
|
|
283
|
-
if (
|
|
284
|
-
ioPack &&
|
|
261
|
+
if (ioPack &&
|
|
285
262
|
ioPack.common &&
|
|
286
263
|
ioPack.common.plugins &&
|
|
287
264
|
pluginName in ioPack.common.plugins &&
|
|
288
|
-
ioPack.common.plugins[pluginName].enabled === false
|
|
289
|
-
) {
|
|
265
|
+
ioPack.common.plugins[pluginName].enabled === false) {
|
|
290
266
|
return false;
|
|
291
267
|
}
|
|
292
|
-
}
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
293
270
|
/* ignore */
|
|
294
271
|
}
|
|
295
|
-
|
|
296
272
|
// 3. check if the plugin is disabled in iobroker.json
|
|
297
|
-
if (
|
|
298
|
-
iobrokerJson &&
|
|
273
|
+
if (iobrokerJson &&
|
|
299
274
|
iobrokerJson.plugins &&
|
|
300
275
|
pluginName in iobrokerJson.plugins &&
|
|
301
|
-
iobrokerJson.plugins[pluginName].enabled === false
|
|
302
|
-
) {
|
|
276
|
+
iobrokerJson.plugins[pluginName].enabled === false) {
|
|
303
277
|
return false;
|
|
304
278
|
}
|
|
305
|
-
|
|
306
279
|
// default: enabled
|
|
307
280
|
return true;
|
|
308
281
|
}
|
|
282
|
+
//# sourceMappingURL=cliPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliPlugin.js","sourceRoot":"","sources":["../../../src/lib/cli/cliPlugin.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export = CLIProcess;
|
|
2
|
+
declare class CLIProcess extends CLICommand {
|
|
3
|
+
/**
|
|
4
|
+
* Starts one or more adapters or the js-controller
|
|
5
|
+
* @param {any[]} args
|
|
6
|
+
*/
|
|
7
|
+
start(args: any[]): void;
|
|
8
|
+
/**
|
|
9
|
+
* Restarts one or more adapters or the js-controller
|
|
10
|
+
* @param {any[]} args
|
|
11
|
+
*/
|
|
12
|
+
restart(args: any[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* Stops one or more adapters or the js-controller
|
|
15
|
+
* @param {any[]} args
|
|
16
|
+
*/
|
|
17
|
+
stop(args: any[]): void;
|
|
18
|
+
/**
|
|
19
|
+
* Starts or stops all adapters
|
|
20
|
+
* @param {boolean} enabled
|
|
21
|
+
*/
|
|
22
|
+
setAllAdaptersEnabled(enabled: boolean): void;
|
|
23
|
+
/**
|
|
24
|
+
* Starts or stops a single adapter. If there are multiple instances this fails
|
|
25
|
+
* @param {string} adapter The adapter to start
|
|
26
|
+
* @param {boolean} enabled
|
|
27
|
+
* @param {boolean} [restartIfRunning=false] Whether running instances should be restarted
|
|
28
|
+
*/
|
|
29
|
+
setAdapterEnabled(adapter: string, enabled: boolean, restartIfRunning?: boolean | undefined): void;
|
|
30
|
+
/**
|
|
31
|
+
* Starts or stops a specific adapter instance
|
|
32
|
+
* @param {string} instance The instance to start, e.g. "adaptername.0"
|
|
33
|
+
* @param {boolean} enabled
|
|
34
|
+
* @param {boolean} [restartIfRunning=false] Whether running instances should be restarted
|
|
35
|
+
*/
|
|
36
|
+
setAdapterInstanceEnabled(instance: string, enabled: boolean, restartIfRunning?: boolean | undefined): void;
|
|
37
|
+
/** Starts the JS controller */
|
|
38
|
+
startJSController(): void;
|
|
39
|
+
/** Stops the JS controller */
|
|
40
|
+
stopJSController(): void;
|
|
41
|
+
/** Restarts the JS controller */
|
|
42
|
+
restartJSController(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if ioBroker is running or not
|
|
45
|
+
* @param {any[]} args
|
|
46
|
+
*/
|
|
47
|
+
status(args: any[]): void;
|
|
48
|
+
}
|
|
49
|
+
import CLICommand = require("./cliCommand.js");
|
|
50
|
+
//# sourceMappingURL=cliProcess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliProcess.d.ts","sourceRoot":"","sources":["../../../src/lib/cli/cliProcess.js"],"names":[],"mappings":";AAgBiB;IASb;;;OAGG;IACH,YAFW,GAAG,EAAE,QAaf;IAED;;;OAGG;IACH,cAFW,GAAG,EAAE,QAWf;IAED;;;OAGG;IACH,WAFW,GAAG,EAAE,QAaf;IAED;;;OAGG;IACH,+BAFW,OAAO,QAejB;IAED;;;;;OAKG;IACH,2BAJW,MAAM,WACN,OAAO,gDA8BjB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,WACN,OAAO,gDAqBjB;IAED,+BAA+B;IAC/B,0BAGC;IAED,8BAA8B;IAC9B,yBAuBC;IAED,iCAAiC;IACjC,4BAIC;IAED;;;OAGG;IACH,aAFW,GAAG,EAAE,QA0Df;CACJ"}
|
|
@@ -7,22 +7,17 @@ const { tools } = require('@iobroker/js-controller-common');
|
|
|
7
7
|
const dbTools = require('@iobroker/js-controller-common-db').tools;
|
|
8
8
|
const deepClone = require('deep-clone');
|
|
9
9
|
const { EXIT_CODES } = require('@iobroker/js-controller-common');
|
|
10
|
-
|
|
11
10
|
const { getObjectFrom, getInstanceName, normalizeAdapterName, enumInstances } = require('./cliTools.js');
|
|
12
|
-
|
|
13
11
|
// The root of this project. Change this when moving code to another directory
|
|
14
12
|
const rootDir = tools.getControllerDir();
|
|
15
13
|
const killAllScriptPath = path.join(rootDir, 'killall.sh');
|
|
16
|
-
|
|
17
14
|
module.exports = class CLIProcess extends CLICommand {
|
|
18
15
|
/** @param {import('./cliCommand').CLICommandOptions} options */
|
|
19
16
|
constructor(options) {
|
|
20
17
|
super(options);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
// These CLI commands have no subcommands, but belong together thematically
|
|
24
20
|
// (start/stop/restart/status)
|
|
25
|
-
|
|
26
21
|
/**
|
|
27
22
|
* Starts one or more adapters or the js-controller
|
|
28
23
|
* @param {any[]} args
|
|
@@ -31,15 +26,17 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
31
26
|
const adapterName = normalizeAdapterName(args[0]);
|
|
32
27
|
if (!adapterName) {
|
|
33
28
|
this.startJSController();
|
|
34
|
-
}
|
|
29
|
+
}
|
|
30
|
+
else if (adapterName === 'all') {
|
|
35
31
|
this.setAllAdaptersEnabled(true);
|
|
36
|
-
}
|
|
32
|
+
}
|
|
33
|
+
else if (/\.\d+$/.test(adapterName)) {
|
|
37
34
|
this.setAdapterInstanceEnabled(adapterName, true);
|
|
38
|
-
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
39
37
|
this.setAdapterEnabled(adapterName, true);
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
|
-
|
|
43
40
|
/**
|
|
44
41
|
* Restarts one or more adapters or the js-controller
|
|
45
42
|
* @param {any[]} args
|
|
@@ -48,13 +45,14 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
48
45
|
const adapterName = normalizeAdapterName(args[0]);
|
|
49
46
|
if (!adapterName) {
|
|
50
47
|
this.restartJSController();
|
|
51
|
-
}
|
|
48
|
+
}
|
|
49
|
+
else if (/\.\d+$/.test(adapterName)) {
|
|
52
50
|
this.setAdapterInstanceEnabled(adapterName, true, /* restartIfRunning */ true);
|
|
53
|
-
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
54
53
|
this.setAdapterEnabled(adapterName, true, /* restartIfRunning */ true);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
|
-
|
|
58
56
|
/**
|
|
59
57
|
* Stops one or more adapters or the js-controller
|
|
60
58
|
* @param {any[]} args
|
|
@@ -63,22 +61,24 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
63
61
|
const adapterName = normalizeAdapterName(args[0]);
|
|
64
62
|
if (adapterName === undefined) {
|
|
65
63
|
this.stopJSController();
|
|
66
|
-
}
|
|
64
|
+
}
|
|
65
|
+
else if (adapterName === 'all') {
|
|
67
66
|
this.setAllAdaptersEnabled(false);
|
|
68
|
-
}
|
|
67
|
+
}
|
|
68
|
+
else if (/\.\d+$/.test(adapterName)) {
|
|
69
69
|
this.setAdapterInstanceEnabled(adapterName, false);
|
|
70
|
-
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
71
72
|
this.setAdapterEnabled(adapterName, false);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
|
|
75
75
|
/**
|
|
76
76
|
* Starts or stops all adapters
|
|
77
77
|
* @param {boolean} enabled
|
|
78
78
|
*/
|
|
79
79
|
setAllAdaptersEnabled(enabled) {
|
|
80
80
|
const { callback, dbConnect } = this.options;
|
|
81
|
-
dbConnect(async objects => {
|
|
81
|
+
dbConnect(async (objects) => {
|
|
82
82
|
// Enumerate all adapter instances
|
|
83
83
|
const instances = await tools.getInstancesOrderedByStartPrio(objects, console);
|
|
84
84
|
// Create a promise for each. setInstanceEnabled only starts/stops when necessary
|
|
@@ -90,7 +90,6 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
90
90
|
callback();
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
|
-
|
|
94
93
|
/**
|
|
95
94
|
* Starts or stops a single adapter. If there are multiple instances this fails
|
|
96
95
|
* @param {string} adapter The adapter to start
|
|
@@ -99,7 +98,7 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
99
98
|
*/
|
|
100
99
|
setAdapterEnabled(adapter, enabled, restartIfRunning) {
|
|
101
100
|
const { callback, dbConnect } = this.options;
|
|
102
|
-
dbConnect(async objects => {
|
|
101
|
+
dbConnect(async (objects) => {
|
|
103
102
|
// Due to the many return locations we cannot simply chain the promises here
|
|
104
103
|
// Use the pre-Node8 async/await pattern
|
|
105
104
|
try {
|
|
@@ -107,25 +106,23 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
107
106
|
const adapterInstances = await enumInstances(objects, adapter);
|
|
108
107
|
// If there are multiple instances for this adapter, ask the user to specify which one
|
|
109
108
|
if (adapterInstances.length > 1) {
|
|
110
|
-
CLI.error.specifyInstance(
|
|
111
|
-
adapter,
|
|
112
|
-
adapterInstances.map(obj => obj._id.substring('system.adapter.'.length))
|
|
113
|
-
);
|
|
109
|
+
CLI.error.specifyInstance(adapter, adapterInstances.map(obj => obj._id.substring('system.adapter.'.length)));
|
|
114
110
|
return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
|
|
115
|
-
}
|
|
111
|
+
}
|
|
112
|
+
else if (adapterInstances.length === 0) {
|
|
116
113
|
CLI.error.noInstancesFound(adapter);
|
|
117
114
|
return void callback(EXIT_CODES.UNKNOWN_ERROR);
|
|
118
115
|
}
|
|
119
116
|
const instance = adapterInstances[0];
|
|
120
117
|
await setInstanceEnabled(objects, instance, enabled, restartIfRunning);
|
|
121
118
|
return void callback();
|
|
122
|
-
}
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
123
121
|
CLI.error.unknown(err.message);
|
|
124
122
|
return void callback(EXIT_CODES.UNKNOWN_ERROR);
|
|
125
123
|
}
|
|
126
124
|
});
|
|
127
125
|
}
|
|
128
|
-
|
|
129
126
|
/**
|
|
130
127
|
* Starts or stops a specific adapter instance
|
|
131
128
|
* @param {string} instance The instance to start, e.g. "adaptername.0"
|
|
@@ -140,24 +137,22 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
140
137
|
CLI.error.invalidInstance(instance);
|
|
141
138
|
return void callback();
|
|
142
139
|
}
|
|
143
|
-
|
|
144
140
|
try {
|
|
145
141
|
await setInstanceEnabled(objects, obj, enabled, restartIfRunning);
|
|
146
142
|
return void callback();
|
|
147
|
-
}
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
148
145
|
CLI.error.unknown(e.message);
|
|
149
146
|
return void callback(EXIT_CODES.UNKNOWN_ERROR);
|
|
150
147
|
}
|
|
151
148
|
});
|
|
152
149
|
});
|
|
153
150
|
}
|
|
154
|
-
|
|
155
151
|
/** Starts the JS controller */
|
|
156
152
|
startJSController() {
|
|
157
153
|
const daemon = setupDaemonize();
|
|
158
154
|
daemon.start();
|
|
159
155
|
}
|
|
160
|
-
|
|
161
156
|
/** Stops the JS controller */
|
|
162
157
|
stopJSController() {
|
|
163
158
|
const { callback } = this.options;
|
|
@@ -176,21 +171,20 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
176
171
|
console.log('Exit code for "killall.sh": ' + exitCode);
|
|
177
172
|
return void callback();
|
|
178
173
|
});
|
|
179
|
-
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
180
176
|
console.log('No "killall.sh" script found. Just stop.');
|
|
181
177
|
}
|
|
182
178
|
});
|
|
183
179
|
}
|
|
184
180
|
daemon.stop();
|
|
185
181
|
}
|
|
186
|
-
|
|
187
182
|
/** Restarts the JS controller */
|
|
188
183
|
restartJSController() {
|
|
189
184
|
const daemon = setupDaemonize();
|
|
190
185
|
daemon.on('stopped', () => daemon.start()).on('notrunning', () => daemon.start());
|
|
191
186
|
daemon.stop();
|
|
192
187
|
}
|
|
193
|
-
|
|
194
188
|
/**
|
|
195
189
|
* Checks if ioBroker is running or not
|
|
196
190
|
* @param {any[]} args
|
|
@@ -199,7 +193,6 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
199
193
|
const { callback, dbConnect } = this.options;
|
|
200
194
|
const adapterName = normalizeAdapterName(args[0]);
|
|
201
195
|
const showEntireConfig = adapterName === 'all';
|
|
202
|
-
|
|
203
196
|
dbConnect(async (_objects, states, isOffline, _objectDbType, config) => {
|
|
204
197
|
if (!adapterName || showEntireConfig) {
|
|
205
198
|
// we want host info or/and whole config
|
|
@@ -207,44 +200,41 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
207
200
|
const alive = hostAlive ? hostAlive.val : false;
|
|
208
201
|
CLI.success.controllerStatus(alive);
|
|
209
202
|
console.log();
|
|
210
|
-
if (
|
|
211
|
-
!dbTools.
|
|
212
|
-
!dbTools.isLocalObjectsDbServer(config.objects.type, config.objects.host)
|
|
213
|
-
) {
|
|
203
|
+
if (!dbTools.isLocalStatesDbServer(config.states.type, config.states.host) &&
|
|
204
|
+
!dbTools.isLocalObjectsDbServer(config.objects.type, config.objects.host)) {
|
|
214
205
|
CLI.success.systemStatus(!isOffline);
|
|
215
206
|
}
|
|
216
|
-
|
|
217
207
|
console.log();
|
|
218
208
|
if (showEntireConfig) {
|
|
219
209
|
await showAllInstancesStatus(states, _objects);
|
|
220
210
|
console.log();
|
|
221
211
|
showConfig(config);
|
|
222
|
-
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
223
214
|
console.log(`Objects type: ${config.objects.type}`);
|
|
224
215
|
console.log(`States type: ${config.states.type}`);
|
|
225
216
|
}
|
|
226
217
|
return void callback(isOffline ? EXIT_CODES.CONTROLLER_NOT_RUNNING : undefined);
|
|
227
218
|
});
|
|
228
|
-
}
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
229
221
|
// we want to know the status of an adapter
|
|
230
222
|
if (/\.\d+$/.test(adapterName)) {
|
|
231
223
|
// instance specified
|
|
232
224
|
await showInstanceStatus(states, adapterName);
|
|
233
225
|
return void callback();
|
|
234
|
-
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
235
228
|
const adapterInstances = await enumInstances(_objects, adapterName);
|
|
236
229
|
// If there are multiple instances of this adapter, ask the user to specify which one
|
|
237
230
|
if (adapterInstances.length > 1) {
|
|
238
|
-
CLI.error.specifyInstance(
|
|
239
|
-
adapterName,
|
|
240
|
-
adapterInstances.map(obj => obj._id.substring('system.adapter.'.length))
|
|
241
|
-
);
|
|
231
|
+
CLI.error.specifyInstance(adapterName, adapterInstances.map(obj => obj._id.substring('system.adapter.'.length)));
|
|
242
232
|
return void callback(EXIT_CODES.INVALID_ADAPTER_ID);
|
|
243
|
-
}
|
|
233
|
+
}
|
|
234
|
+
else if (adapterInstances.length === 0) {
|
|
244
235
|
CLI.error.noInstancesFound(adapterName);
|
|
245
236
|
return void callback(EXIT_CODES.UNKNOWN_ERROR);
|
|
246
237
|
}
|
|
247
|
-
|
|
248
238
|
const instanceId = adapterInstances[0]._id.split('.').pop();
|
|
249
239
|
await showInstanceStatus(states, `${adapterName}.${instanceId}`);
|
|
250
240
|
return void callback();
|
|
@@ -253,7 +243,6 @@ module.exports = class CLIProcess extends CLICommand {
|
|
|
253
243
|
});
|
|
254
244
|
}
|
|
255
245
|
};
|
|
256
|
-
|
|
257
246
|
/**
|
|
258
247
|
* Outputs the status of all existing adapter instances
|
|
259
248
|
* @param {object} states The States DB
|
|
@@ -268,7 +257,6 @@ async function showAllInstancesStatus(states, objects) {
|
|
|
268
257
|
}
|
|
269
258
|
return Promise.resolve();
|
|
270
259
|
}
|
|
271
|
-
|
|
272
260
|
/**
|
|
273
261
|
* Outputs the status of an adapter instance
|
|
274
262
|
* @param {object} states the states object
|
|
@@ -280,14 +268,14 @@ function showInstanceStatus(states, adapterInstance) {
|
|
|
280
268
|
states.getState(`system.adapter.${adapterInstance}.alive`, (err, state) => {
|
|
281
269
|
if (state && state.val === true) {
|
|
282
270
|
console.log(`Instance "${adapterInstance}" is running`);
|
|
283
|
-
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
284
273
|
console.log(`Instance "${adapterInstance}" is not running`);
|
|
285
274
|
}
|
|
286
275
|
resolve();
|
|
287
276
|
});
|
|
288
277
|
});
|
|
289
278
|
}
|
|
290
|
-
|
|
291
279
|
/** Prints the config file to the console */
|
|
292
280
|
function showConfig(config, root) {
|
|
293
281
|
if (!tools.isObject(config)) {
|
|
@@ -303,12 +291,12 @@ function showConfig(config, root) {
|
|
|
303
291
|
const nextRoot = deepClone(root);
|
|
304
292
|
nextRoot.push(attr);
|
|
305
293
|
showConfig(config[attr], nextRoot);
|
|
306
|
-
}
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
307
296
|
console.log(`${prefix}${(prefix ? '/' : '') + attr}: ` + config[attr]);
|
|
308
297
|
}
|
|
309
298
|
}
|
|
310
299
|
}
|
|
311
|
-
|
|
312
300
|
/**
|
|
313
301
|
* Sets the enabled state of an instance to the given value
|
|
314
302
|
* @param {any} objects The objects DB
|
|
@@ -327,17 +315,18 @@ function setInstanceEnabled(objects, instanceObj, enabled, force) {
|
|
|
327
315
|
const instanceName = getInstanceName(instanceObj._id);
|
|
328
316
|
if (enabled) {
|
|
329
317
|
CLI.success.adapterStarted(instanceName);
|
|
330
|
-
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
331
320
|
CLI.success.adapterStopped(instanceName);
|
|
332
321
|
}
|
|
333
322
|
resolve();
|
|
334
323
|
});
|
|
335
|
-
}
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
336
326
|
resolve();
|
|
337
327
|
}
|
|
338
328
|
});
|
|
339
329
|
}
|
|
340
|
-
|
|
341
330
|
function setupDaemonize() {
|
|
342
331
|
let memoryLimitMB = 0;
|
|
343
332
|
try {
|
|
@@ -345,11 +334,10 @@ function setupDaemonize() {
|
|
|
345
334
|
if (config && config.system && config.system.memoryLimitMB) {
|
|
346
335
|
memoryLimitMB = parseInt(config.system.memoryLimitMB, 10);
|
|
347
336
|
}
|
|
348
|
-
}
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
349
339
|
console.warn('Cannot read memoryLimitMB');
|
|
350
|
-
console.warn(
|
|
351
|
-
`May be config file does not exist.\nPlease call "${tools.appName} setup first" to initialize the settings.`
|
|
352
|
-
);
|
|
340
|
+
console.warn(`May be config file does not exist.\nPlease call "${tools.appName} setup first" to initialize the settings.`);
|
|
353
341
|
}
|
|
354
342
|
const startObj = {
|
|
355
343
|
main: path.join(rootDir, 'controller.js'),
|
|
@@ -361,8 +349,8 @@ function setupDaemonize() {
|
|
|
361
349
|
if (memoryLimitMB) {
|
|
362
350
|
startObj.args = '--max-old-space-size=' + memoryLimitMB;
|
|
363
351
|
}
|
|
364
|
-
|
|
365
352
|
const daemon = require('daemonize2').setup(startObj);
|
|
366
353
|
daemon.on('error', error => CLI.error.unknown(error));
|
|
367
354
|
return daemon;
|
|
368
355
|
}
|
|
356
|
+
//# sourceMappingURL=cliProcess.js.map
|