@webos-tools/cli 3.2.0 → 3.2.1
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/.eslintignore +1 -1
- package/.eslintrc.js +52 -52
- package/.vscode/c_cpp_properties.json +21 -0
- package/.vscode/launch.json +97 -0
- package/.vscode/settings.json +13 -0
- package/.vscode/tasks.json +32 -0
- package/APIs.js +79 -79
- package/CHANGELOG.md +11 -5
- package/LICENSE +201 -201
- package/bin/ares-config.js +1 -1
- package/bin/ares-device-info.js +30 -30
- package/bin/ares-generate.js +274 -274
- package/bin/ares-inspect.js +179 -179
- package/bin/ares-install.js +223 -223
- package/bin/ares-log.js +259 -259
- package/bin/ares-pull.js +156 -156
- package/bin/ares-push.js +155 -155
- package/bin/ares-server.js +174 -174
- package/bin/ares-setup-device.js +6 -10
- package/bin/ares-shell.js +132 -132
- package/bin/ares.js +166 -166
- package/files/conf/ares.json +1 -2
- package/files/conf/ipk.json +30 -30
- package/files/conf/novacom-devices.json +2 -2
- package/files/conf/query/query-app.json +14 -14
- package/files/conf/query/query-hosted.json +18 -18
- package/files/conf/query/query-package.json +10 -10
- package/files/conf/query/query-service.json +6 -6
- package/files/conf/webos_emul +27 -27
- package/files/conf-base/env/sdk-apollo.json +8 -8
- package/files/conf-base/env/sdk-ose.json +8 -8
- package/files/conf-base/env/sdk-tv.json +8 -8
- package/files/conf-base/profile/config-apollo.json +29 -29
- package/files/conf-base/profile/config-ose.json +29 -29
- package/files/conf-base/profile/config-tv.json +31 -31
- package/files/conf-base/query/query-app.json +14 -14
- package/files/conf-base/query/query-hosted.json +18 -18
- package/files/conf-base/query/query-package.json +10 -10
- package/files/conf-base/query/query-service.json +6 -6
- package/files/conf-base/query/signage/query-app.json +1 -1
- package/files/conf-base/query/signage/query-service.json +1 -1
- package/files/conf-base/template-conf/ose-templates.json +67 -67
- package/files/conf-base/template-conf/tv-sdk-templates.json +57 -57
- package/files/help/ares-device.help +109 -109
- package/files/help/ares-install.help +95 -95
- package/files/help/ares-launch.help +1 -1
- package/files/help/ares-log-pmlogd.help +84 -84
- package/files/help/ares-log.help +101 -101
- package/files/help/ares-novacom.help +68 -68
- package/files/help/ares-pull.help +38 -38
- package/files/help/ares-push.help +38 -38
- package/files/help/ares-server.help +44 -44
- package/files/help/ares-shell.help +42 -42
- package/files/help/ares.help +52 -52
- package/files/help/readme.help +23 -23
- package/files/schema/ApplicationDescription.schema +319 -319
- package/files/templates/apollo-sdk-templates/appinfo/appinfo.json +10 -10
- package/files/templates/apollo-sdk-templates/bootplate-web/index.html +88 -88
- package/files/templates/apollo-sdk-templates/hosted-webapp/index.html +13 -13
- package/files/templates/apollo-sdk-templates/js-service/helloclient.js +31 -31
- package/files/templates/apollo-sdk-templates/js-service/helloworld_webos_service.js +188 -188
- package/files/templates/apollo-sdk-templates/serviceinfo/package.json +11 -11
- package/files/templates/apollo-sdk-templates/serviceinfo/services.json +8 -8
- package/files/templates/ose-sdk-templates/appinfo/appinfo.json +10 -10
- package/files/templates/ose-sdk-templates/bootplate-web/index.html +88 -88
- package/files/templates/ose-sdk-templates/hosted-webapp/index.html +13 -13
- package/files/templates/ose-sdk-templates/js-service/helloclient.js +31 -31
- package/files/templates/ose-sdk-templates/js-service/helloworld_webos_service.js +188 -188
- package/files/templates/ose-sdk-templates/qml-app/main.qml +68 -68
- package/files/templates/ose-sdk-templates/qmlappinfo/appinfo.json +10 -10
- package/files/templates/ose-sdk-templates/serviceinfo/package.json +11 -11
- package/files/templates/ose-sdk-templates/serviceinfo/services.json +8 -8
- package/files/templates/signage-sdk-templates/Backlight_Scheduling/index.html +1 -1
- package/files/templates/signage-sdk-templates/Backlight_Scheduling/scheduler.js +2 -3
- package/files/templates/signage-sdk-templates/File_Explorer/index.html +1 -33
- package/files/templates/signage-sdk-templates/File_Explorer/js/Root.js +0 -9
- package/files/templates/tv-sdk-templates/appinfo/appinfo.json +10 -10
- package/files/templates/tv-sdk-templates/bootplate-web/index.html +58 -58
- package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.10/LICENSE-2.0.txt +202 -202
- package/files/templates/tv-sdk-templates/hosted-webapp/index.html +14 -14
- package/files/templates/tv-sdk-templates/js-service/helloworld_service.js +39 -39
- package/files/templates/tv-sdk-templates/packageinfo/packageinfo.json +3 -3
- package/files/templates/tv-sdk-templates/serviceinfo/package.json +11 -11
- package/files/templates/tv-sdk-templates/serviceinfo/services.json +8 -8
- package/lib/base/ares.html +40 -40
- package/lib/base/cli-appdata.js +290 -289
- package/lib/base/cli-control.js +44 -44
- package/lib/base/common-tools.js +29 -29
- package/lib/base/error-handler.js +265 -265
- package/lib/base/file-watcher.js +155 -155
- package/lib/base/help-format.js +147 -147
- package/lib/base/luna.js +178 -178
- package/lib/base/novacom.js +4 -4
- package/lib/base/sdkenv.js +59 -59
- package/lib/base/server.js +137 -137
- package/lib/base/setup-device.js +2 -2
- package/lib/base/version-tools.js +79 -79
- package/lib/device.js +1419 -1419
- package/lib/generator.js +1 -1
- package/lib/inspect.js +493 -493
- package/lib/log.js +584 -584
- package/lib/package.js +61 -7
- package/lib/pull.js +231 -231
- package/lib/pusher.js +210 -210
- package/lib/session.js +74 -74
- package/lib/shell.js +193 -193
- package/lib/tar-filter-pack.js +62 -62
- package/lib/util/copy.js +31 -31
- package/lib/util/createFileName.js +40 -40
- package/lib/util/eof.js +30 -30
- package/lib/util/json.js +63 -63
- package/lib/util/merge.js +14 -14
- package/lib/util/objclone.js +40 -40
- package/lib/util/spinner.js +37 -37
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/scripts/postinstall.js +24 -24
- package/spec/helpers/reporter.js +65 -65
- package/spec/jsSpecs/apiTest/generator.spec.js +372 -372
- package/spec/jsSpecs/apiTest/inspector.spec.js +89 -89
- package/spec/jsSpecs/apiTest/installer.spec.js +67 -67
- package/spec/jsSpecs/apiTest/launcher.spec.js +150 -150
- package/spec/jsSpecs/apiTest/packager.spec.js +194 -194
- package/spec/jsSpecs/apiTest/puller.spec.js +101 -101
- package/spec/jsSpecs/apiTest/pusher.spec.js +103 -103
- package/spec/jsSpecs/apiTest/server.spec.js +115 -115
- package/spec/jsSpecs/apiTest/setupDevice.spec.js +93 -93
- package/spec/jsSpecs/apiTest/shell.spec.js +49 -49
- package/spec/jsSpecs/ares-config.spec.js +88 -88
- package/spec/jsSpecs/ares-device.spec.js +443 -443
- package/spec/jsSpecs/ares-generate.spec.js +397 -401
- package/spec/jsSpecs/ares-inspect.spec.js +252 -252
- package/spec/jsSpecs/ares-install.spec.js +150 -150
- package/spec/jsSpecs/ares-log.spec.js +824 -824
- package/spec/jsSpecs/ares-novacom.spec.js +149 -149
- package/spec/jsSpecs/ares-pull.spec.js +157 -157
- package/spec/jsSpecs/ares-push.spec.js +146 -146
- package/spec/jsSpecs/ares-setup-device.spec.js +1 -0
- package/spec/jsSpecs/ares-shell.spec.js +220 -220
- package/spec/jsSpecs/ares.spec.js +83 -83
- package/spec/support/jasmine.json +22 -22
- package/spec/tempFiles/nativeApp/auto/pkg_arm64/appinfo.json +9 -9
- package/spec/tempFiles/nativeApp/ose/pkg_arm/appinfo.json +8 -8
- package/spec/tempFiles/nativeApp/ose/pkg_arm/package.properties +2 -2
- package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/appinfo.json +9 -9
- package/spec/tempFiles/nativeApp/rsi/pkg_x86/appinfo.json +9 -9
- package/spec/tempFiles/sign/sign.crt +32 -32
- package/spec/tempFiles/sign/signPriv.key +52 -52
- package/spec/test_data/ares-generate.json +58 -91
- package/spec/test_data/ares.json +50 -50
- package/webos-tools-cli-3.2.1.tgz +0 -0
- package/webos-tools-cli-3.2.0.tgz +0 -0
package/bin/ares-server.js
CHANGED
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
5
|
-
*
|
|
6
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const async = require('async'),
|
|
10
|
-
fs = require('fs'),
|
|
11
|
-
nopt = require('nopt'),
|
|
12
|
-
log = require('npmlog'),
|
|
13
|
-
path = require('path'),
|
|
14
|
-
commonTools = require('./../lib/base/common-tools'),
|
|
15
|
-
serverLib = require('./../lib/base/server');
|
|
16
|
-
|
|
17
|
-
const version = commonTools.version,
|
|
18
|
-
cliControl = commonTools.cliControl,
|
|
19
|
-
help = commonTools.help,
|
|
20
|
-
sdkenv = commonTools.sdkenv,
|
|
21
|
-
appdata = commonTools.appdata,
|
|
22
|
-
errHndl = commonTools.errMsg;
|
|
23
|
-
|
|
24
|
-
const processName = path.basename(process.argv[1]).replace(/.js/, '');
|
|
25
|
-
|
|
26
|
-
process.on('uncaughtException', function(err) {
|
|
27
|
-
log.error('uncaughtException', err.toString());
|
|
28
|
-
log.verbose('uncaughtException', err.stack);
|
|
29
|
-
cliControl.end(-1);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
if (process.argv.length === 2) {
|
|
33
|
-
process.argv.splice(2, 0, '--help');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const knownOpts = {
|
|
37
|
-
"version": Boolean,
|
|
38
|
-
"help": Boolean,
|
|
39
|
-
"open": Boolean,
|
|
40
|
-
"port": String,
|
|
41
|
-
"level": ['silly', 'verbose', 'info', 'http', 'warn', 'error']
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const shortHands = {
|
|
45
|
-
"V": ["--version"],
|
|
46
|
-
"h": ["--help"],
|
|
47
|
-
"o": ["--open"],
|
|
48
|
-
"p": ["--port"],
|
|
49
|
-
"v": ["--level", "verbose"]
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const argv = nopt(knownOpts, shortHands, process.argv, 2 /* drop 'node' & 'ares-*.js' */);
|
|
53
|
-
|
|
54
|
-
log.heading = processName;
|
|
55
|
-
log.level = argv.level || 'warn';
|
|
56
|
-
log.verbose("argv", argv);
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* For consistent of "$command -v", argv is used.
|
|
60
|
-
* By nopt, argv is parsed and set key-value in argv object.
|
|
61
|
-
* If -v or --level option is input with command, it is set key-value in argv.
|
|
62
|
-
* After it is deleted, If remained key is only one in argv object
|
|
63
|
-
* (If any other are remained, it's mean another options is input)
|
|
64
|
-
* and there is no remaining after parsing the input command by nopt
|
|
65
|
-
* (If any other are remained, it's mean another parameters ares input),
|
|
66
|
-
* each command of webOS CLI print help message with log message.
|
|
67
|
-
*/
|
|
68
|
-
if (argv.level) {
|
|
69
|
-
delete argv.level;
|
|
70
|
-
if (argv.argv.remain.length === 0 && (Object.keys(argv)).length === 1) {
|
|
71
|
-
argv.help = true;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
let op;
|
|
76
|
-
if (argv.help) {
|
|
77
|
-
showUsage();
|
|
78
|
-
cliControl.end();
|
|
79
|
-
} else if (argv.version) {
|
|
80
|
-
version.showVersionAndExit();
|
|
81
|
-
} else {
|
|
82
|
-
op = runServer;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (op) {
|
|
86
|
-
version.checkNodeVersion(function() {
|
|
87
|
-
async.series([
|
|
88
|
-
op.bind(this)
|
|
89
|
-
], finish);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function showUsage() {
|
|
94
|
-
help.display(processName, appdata.getConfig(true).profile);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function runServer() {
|
|
98
|
-
let killTimer,
|
|
99
|
-
serverUrl = "",
|
|
100
|
-
port = 0,
|
|
101
|
-
appPath = argv.argv.remain.splice(0, 1).join("");
|
|
102
|
-
|
|
103
|
-
if (!appPath) {
|
|
104
|
-
return finish(errHndl.getErrMsg("EMPTY_VALUE", "APP_DIR"));
|
|
105
|
-
}
|
|
106
|
-
appPath = fs.realpathSync(appPath);
|
|
107
|
-
|
|
108
|
-
if (!isNaN(argv.port)) {
|
|
109
|
-
port = parseInt(argv.port);
|
|
110
|
-
log.verbose("runServer()", "port:", port);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
log.info("runServer()", "appPath:", appPath, ", port:", port);
|
|
114
|
-
async.waterfall([
|
|
115
|
-
serverLib.runServer.bind(serverLib, appPath, port, _reqHandler),
|
|
116
|
-
function(serverInfo, next) {
|
|
117
|
-
if (serverInfo && serverInfo.port) {
|
|
118
|
-
serverUrl = serverInfo.url;
|
|
119
|
-
console.log(serverInfo.msg);
|
|
120
|
-
}
|
|
121
|
-
if (argv.open && serverInfo.port) {
|
|
122
|
-
async.series([
|
|
123
|
-
sdkenv.getEnvValue.bind(sdkenv, "BROWSER")
|
|
124
|
-
], function(err, browserPath) {
|
|
125
|
-
if (err) {
|
|
126
|
-
return next(err);
|
|
127
|
-
}
|
|
128
|
-
log.info("runServer()", "serverInfo.openBrowserUrl:", serverInfo.openBrowserUrl, ", browserPath :", browserPath[0]);
|
|
129
|
-
serverLib.openBrowser(serverInfo.openBrowserUrl, browserPath[0]);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
next();
|
|
133
|
-
},
|
|
134
|
-
function() {
|
|
135
|
-
// TODO: Holding process to keep alive
|
|
136
|
-
}
|
|
137
|
-
], finish);
|
|
138
|
-
|
|
139
|
-
function _reqHandler(code, res) {
|
|
140
|
-
if (code === "@@ARES_CLOSE@@") {
|
|
141
|
-
res.status(200).send();
|
|
142
|
-
killTimer = setTimeout(function() {
|
|
143
|
-
cliControl.end();
|
|
144
|
-
}, 2 * 1000);
|
|
145
|
-
} else if (code === "@@GET_URL@@") {
|
|
146
|
-
clearTimeout(killTimer);
|
|
147
|
-
res.status(200).send(serverUrl);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
function finish(err, value) {
|
|
153
|
-
log.info("finish()");
|
|
154
|
-
if (err) {
|
|
155
|
-
// handle err from getErrMsg()
|
|
156
|
-
if (Array.isArray(err) && err.length > 0) {
|
|
157
|
-
for (const index in err) {
|
|
158
|
-
log.error(err[index].heading, err[index].message);
|
|
159
|
-
}
|
|
160
|
-
log.verbose(err[0].stack);
|
|
161
|
-
} else {
|
|
162
|
-
// handle general err (string & object)
|
|
163
|
-
log.error(err.toString());
|
|
164
|
-
log.verbose(err.stack);
|
|
165
|
-
}
|
|
166
|
-
cliControl.end(-1);
|
|
167
|
-
} else {
|
|
168
|
-
log.verbose("finish()", "value:", value);
|
|
169
|
-
if (value && value.msg) {
|
|
170
|
-
console.log(value.msg);
|
|
171
|
-
}
|
|
172
|
-
cliControl.end();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
5
|
+
*
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const async = require('async'),
|
|
10
|
+
fs = require('fs'),
|
|
11
|
+
nopt = require('nopt'),
|
|
12
|
+
log = require('npmlog'),
|
|
13
|
+
path = require('path'),
|
|
14
|
+
commonTools = require('./../lib/base/common-tools'),
|
|
15
|
+
serverLib = require('./../lib/base/server');
|
|
16
|
+
|
|
17
|
+
const version = commonTools.version,
|
|
18
|
+
cliControl = commonTools.cliControl,
|
|
19
|
+
help = commonTools.help,
|
|
20
|
+
sdkenv = commonTools.sdkenv,
|
|
21
|
+
appdata = commonTools.appdata,
|
|
22
|
+
errHndl = commonTools.errMsg;
|
|
23
|
+
|
|
24
|
+
const processName = path.basename(process.argv[1]).replace(/.js/, '');
|
|
25
|
+
|
|
26
|
+
process.on('uncaughtException', function(err) {
|
|
27
|
+
log.error('uncaughtException', err.toString());
|
|
28
|
+
log.verbose('uncaughtException', err.stack);
|
|
29
|
+
cliControl.end(-1);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
if (process.argv.length === 2) {
|
|
33
|
+
process.argv.splice(2, 0, '--help');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const knownOpts = {
|
|
37
|
+
"version": Boolean,
|
|
38
|
+
"help": Boolean,
|
|
39
|
+
"open": Boolean,
|
|
40
|
+
"port": String,
|
|
41
|
+
"level": ['silly', 'verbose', 'info', 'http', 'warn', 'error']
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const shortHands = {
|
|
45
|
+
"V": ["--version"],
|
|
46
|
+
"h": ["--help"],
|
|
47
|
+
"o": ["--open"],
|
|
48
|
+
"p": ["--port"],
|
|
49
|
+
"v": ["--level", "verbose"]
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const argv = nopt(knownOpts, shortHands, process.argv, 2 /* drop 'node' & 'ares-*.js' */);
|
|
53
|
+
|
|
54
|
+
log.heading = processName;
|
|
55
|
+
log.level = argv.level || 'warn';
|
|
56
|
+
log.verbose("argv", argv);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* For consistent of "$command -v", argv is used.
|
|
60
|
+
* By nopt, argv is parsed and set key-value in argv object.
|
|
61
|
+
* If -v or --level option is input with command, it is set key-value in argv.
|
|
62
|
+
* After it is deleted, If remained key is only one in argv object
|
|
63
|
+
* (If any other are remained, it's mean another options is input)
|
|
64
|
+
* and there is no remaining after parsing the input command by nopt
|
|
65
|
+
* (If any other are remained, it's mean another parameters ares input),
|
|
66
|
+
* each command of webOS CLI print help message with log message.
|
|
67
|
+
*/
|
|
68
|
+
if (argv.level) {
|
|
69
|
+
delete argv.level;
|
|
70
|
+
if (argv.argv.remain.length === 0 && (Object.keys(argv)).length === 1) {
|
|
71
|
+
argv.help = true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
let op;
|
|
76
|
+
if (argv.help) {
|
|
77
|
+
showUsage();
|
|
78
|
+
cliControl.end();
|
|
79
|
+
} else if (argv.version) {
|
|
80
|
+
version.showVersionAndExit();
|
|
81
|
+
} else {
|
|
82
|
+
op = runServer;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (op) {
|
|
86
|
+
version.checkNodeVersion(function() {
|
|
87
|
+
async.series([
|
|
88
|
+
op.bind(this)
|
|
89
|
+
], finish);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function showUsage() {
|
|
94
|
+
help.display(processName, appdata.getConfig(true).profile);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function runServer() {
|
|
98
|
+
let killTimer,
|
|
99
|
+
serverUrl = "",
|
|
100
|
+
port = 0,
|
|
101
|
+
appPath = argv.argv.remain.splice(0, 1).join("");
|
|
102
|
+
|
|
103
|
+
if (!appPath) {
|
|
104
|
+
return finish(errHndl.getErrMsg("EMPTY_VALUE", "APP_DIR"));
|
|
105
|
+
}
|
|
106
|
+
appPath = fs.realpathSync(appPath);
|
|
107
|
+
|
|
108
|
+
if (!isNaN(argv.port)) {
|
|
109
|
+
port = parseInt(argv.port);
|
|
110
|
+
log.verbose("runServer()", "port:", port);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
log.info("runServer()", "appPath:", appPath, ", port:", port);
|
|
114
|
+
async.waterfall([
|
|
115
|
+
serverLib.runServer.bind(serverLib, appPath, port, _reqHandler),
|
|
116
|
+
function(serverInfo, next) {
|
|
117
|
+
if (serverInfo && serverInfo.port) {
|
|
118
|
+
serverUrl = serverInfo.url;
|
|
119
|
+
console.log(serverInfo.msg);
|
|
120
|
+
}
|
|
121
|
+
if (argv.open && serverInfo.port) {
|
|
122
|
+
async.series([
|
|
123
|
+
sdkenv.getEnvValue.bind(sdkenv, "BROWSER")
|
|
124
|
+
], function(err, browserPath) {
|
|
125
|
+
if (err) {
|
|
126
|
+
return next(err);
|
|
127
|
+
}
|
|
128
|
+
log.info("runServer()", "serverInfo.openBrowserUrl:", serverInfo.openBrowserUrl, ", browserPath :", browserPath[0]);
|
|
129
|
+
serverLib.openBrowser(serverInfo.openBrowserUrl, browserPath[0]);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
next();
|
|
133
|
+
},
|
|
134
|
+
function() {
|
|
135
|
+
// TODO: Holding process to keep alive
|
|
136
|
+
}
|
|
137
|
+
], finish);
|
|
138
|
+
|
|
139
|
+
function _reqHandler(code, res) {
|
|
140
|
+
if (code === "@@ARES_CLOSE@@") {
|
|
141
|
+
res.status(200).send();
|
|
142
|
+
killTimer = setTimeout(function() {
|
|
143
|
+
cliControl.end();
|
|
144
|
+
}, 2 * 1000);
|
|
145
|
+
} else if (code === "@@GET_URL@@") {
|
|
146
|
+
clearTimeout(killTimer);
|
|
147
|
+
res.status(200).send(serverUrl);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function finish(err, value) {
|
|
153
|
+
log.info("finish()");
|
|
154
|
+
if (err) {
|
|
155
|
+
// handle err from getErrMsg()
|
|
156
|
+
if (Array.isArray(err) && err.length > 0) {
|
|
157
|
+
for (const index in err) {
|
|
158
|
+
log.error(err[index].heading, err[index].message);
|
|
159
|
+
}
|
|
160
|
+
log.verbose(err[0].stack);
|
|
161
|
+
} else {
|
|
162
|
+
// handle general err (string & object)
|
|
163
|
+
log.error(err.toString());
|
|
164
|
+
log.verbose(err.stack);
|
|
165
|
+
}
|
|
166
|
+
cliControl.end(-1);
|
|
167
|
+
} else {
|
|
168
|
+
log.verbose("finish()", "value:", value);
|
|
169
|
+
if (value && value.msg) {
|
|
170
|
+
console.log(value.msg);
|
|
171
|
+
}
|
|
172
|
+
cliControl.end();
|
|
173
|
+
}
|
|
174
|
+
}
|
package/bin/ares-setup-device.js
CHANGED
|
@@ -230,7 +230,7 @@ function _queryAddRemove(ssdpDevices, next) {
|
|
|
230
230
|
when: function(answers) {
|
|
231
231
|
return (["remove"].indexOf(answers.op) !== -1 && !ssdpDevice);
|
|
232
232
|
}
|
|
233
|
-
},{
|
|
233
|
+
}, {
|
|
234
234
|
type: "list",
|
|
235
235
|
name: "device_name",
|
|
236
236
|
message: "Select a device",
|
|
@@ -328,7 +328,7 @@ function _queryDeviceInfo(selDevice, next) {
|
|
|
328
328
|
return idx;
|
|
329
329
|
},
|
|
330
330
|
when: function(answers) {
|
|
331
|
-
return _needInq(mode)(inqChoices) && answers.user ===
|
|
331
|
+
return _needInq(mode)(inqChoices) && answers.user === "root";
|
|
332
332
|
}
|
|
333
333
|
}, {
|
|
334
334
|
type: "password",
|
|
@@ -347,8 +347,7 @@ function _queryDeviceInfo(selDevice, next) {
|
|
|
347
347
|
when: function(answers) {
|
|
348
348
|
return _needInq(mode)(inqChoices) && (answers.auth_type === "ssh key");
|
|
349
349
|
}
|
|
350
|
-
},
|
|
351
|
-
{
|
|
350
|
+
}, {
|
|
352
351
|
type: "confirm",
|
|
353
352
|
name: "default",
|
|
354
353
|
message: "Set default ?",
|
|
@@ -381,16 +380,14 @@ function _queryDeviceInfo(selDevice, next) {
|
|
|
381
380
|
username: answers.user,
|
|
382
381
|
default: answers.default
|
|
383
382
|
};
|
|
384
|
-
|
|
385
383
|
|
|
386
|
-
if (answers.
|
|
387
|
-
user !== 'prisoner' && ["add", "modify"].includes(mode)) {
|
|
384
|
+
if (answers.user !== 'prisoner' && ["add", "modify"].includes(mode)) {
|
|
388
385
|
if (answers.auth_type && answers.auth_type === "password") {
|
|
389
386
|
inDevice.password = answers.password;
|
|
390
387
|
inDevice.privateKey = "@DELETE@";
|
|
391
388
|
inDevice.passphrase = "@DELETE@";
|
|
392
389
|
inDevice.privateKeyName = "@DELETE@";
|
|
393
|
-
} else if ((answers.auth_type && answers.auth_type === "ssh key") ||
|
|
390
|
+
} else if ((answers.auth_type && answers.auth_type === "ssh key") || answers.user === "developer") {
|
|
394
391
|
inDevice.password = "@DELETE@";
|
|
395
392
|
inDevice.privateKey = {
|
|
396
393
|
"openSsh": answers.ssh_key || "webos_emul"
|
|
@@ -417,7 +414,7 @@ function _queryDeviceInfo(selDevice, next) {
|
|
|
417
414
|
setupDevice.showDeviceList.bind(this),
|
|
418
415
|
], function(err, results) {
|
|
419
416
|
if (err) {
|
|
420
|
-
return next(err
|
|
417
|
+
return next(err);
|
|
421
418
|
}
|
|
422
419
|
if(results[2] && results[2].msg){
|
|
423
420
|
console.log(results[2].msg);
|
|
@@ -574,4 +571,3 @@ function reParse(argv, mode) {
|
|
|
574
571
|
}
|
|
575
572
|
return argv
|
|
576
573
|
}
|
|
577
|
-
|
package/bin/ares-shell.js
CHANGED
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
5
|
-
*
|
|
6
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const async = require('async'),
|
|
10
|
-
nopt = require('nopt'),
|
|
11
|
-
log = require('npmlog'),
|
|
12
|
-
path = require('path'),
|
|
13
|
-
shellLib = require('./../lib/shell'),
|
|
14
|
-
commonTools = require('./../lib/base/common-tools');
|
|
15
|
-
|
|
16
|
-
const version = commonTools.version,
|
|
17
|
-
cliControl = commonTools.cliControl,
|
|
18
|
-
help = commonTools.help,
|
|
19
|
-
setupDevice = commonTools.setupDevice,
|
|
20
|
-
appdata = commonTools.appdata,
|
|
21
|
-
errHndl = commonTools.errMsg;
|
|
22
|
-
|
|
23
|
-
const processName = path.basename(process.argv[1]).replace(/.js/, '');
|
|
24
|
-
|
|
25
|
-
process.on('uncaughtException', function(err) {
|
|
26
|
-
log.error('uncaughtException', err.toString());
|
|
27
|
-
log.verbose('uncaughtException', err.stack);
|
|
28
|
-
cliControl.end(-1);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
const knownOpts = {
|
|
32
|
-
"device": [String, null],
|
|
33
|
-
"device-list": Boolean,
|
|
34
|
-
"display": [String, null],
|
|
35
|
-
"version": Boolean,
|
|
36
|
-
"run": [String, null],
|
|
37
|
-
"help": Boolean,
|
|
38
|
-
"level": ['silly', 'verbose', 'info', 'http', 'warn', 'error']
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const shortHands = {
|
|
42
|
-
"d": ["--device"],
|
|
43
|
-
"D": ["--device-list"],
|
|
44
|
-
"dp": ["--display"],
|
|
45
|
-
"V": ["--version"],
|
|
46
|
-
"r": ["--run"],
|
|
47
|
-
"h": ["--help"],
|
|
48
|
-
"v": ["--level", "verbose"]
|
|
49
|
-
};
|
|
50
|
-
const argv = nopt(knownOpts, shortHands, process.argv, 2 /* drop 'node' & 'ares-shell.js'*/);
|
|
51
|
-
|
|
52
|
-
log.heading = processName;
|
|
53
|
-
log.level = argv.level || 'warn';
|
|
54
|
-
log.verbose("argv", argv);
|
|
55
|
-
|
|
56
|
-
const curConfigData = appdata.getConfig(true);
|
|
57
|
-
if (!["ose", "apollo"].includes(curConfigData.profile)) {
|
|
58
|
-
return finish(errHndl.getErrMsg("NOT_SUPPORT_COMMOND", curConfigData.profile));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const options = {
|
|
62
|
-
device: argv.device,
|
|
63
|
-
display: argv.display
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
let op;
|
|
67
|
-
if (argv['device-list']) {
|
|
68
|
-
op = deviceList;
|
|
69
|
-
} else if (argv.version) {
|
|
70
|
-
version.showVersionAndExit();
|
|
71
|
-
} else if (argv.run) {
|
|
72
|
-
op = run;
|
|
73
|
-
} else if (argv.help) {
|
|
74
|
-
showUsage();
|
|
75
|
-
cliControl.end();
|
|
76
|
-
} else {
|
|
77
|
-
op = shell;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (op) {
|
|
81
|
-
version.checkNodeVersion(function() {
|
|
82
|
-
async.series([
|
|
83
|
-
op.bind(this)
|
|
84
|
-
],finish);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function showUsage() {
|
|
89
|
-
help.display(processName, appdata.getConfig(true).profile);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function deviceList() {
|
|
93
|
-
setupDevice.showDeviceList(finish);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function run() {
|
|
97
|
-
if (argv.display !== undefined && isNaN(Number(argv.display))) {
|
|
98
|
-
return finish(errHndl.getErrMsg("INVALID_DISPLAY"));
|
|
99
|
-
}
|
|
100
|
-
shellLib.remoteRun(options, argv.run, finish);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function shell() {
|
|
104
|
-
if (argv.display !== undefined && isNaN(Number(argv.display))) {
|
|
105
|
-
return finish(errHndl.getErrMsg("INVALID_DISPLAY"));
|
|
106
|
-
}
|
|
107
|
-
shellLib.shell(options, finish);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function finish(err, value) {
|
|
111
|
-
log.info("finish()");
|
|
112
|
-
if (err) {
|
|
113
|
-
// handle err from getErrMsg()
|
|
114
|
-
if (Array.isArray(err) && err.length > 0) {
|
|
115
|
-
for (const index in err) {
|
|
116
|
-
log.error(err[index].heading, err[index].message);
|
|
117
|
-
}
|
|
118
|
-
log.verbose(err[0].stack);
|
|
119
|
-
} else {
|
|
120
|
-
// handle general err (string & object)
|
|
121
|
-
log.error(err.toString());
|
|
122
|
-
log.verbose(err.stack);
|
|
123
|
-
}
|
|
124
|
-
cliControl.end(-1);
|
|
125
|
-
} else {
|
|
126
|
-
log.verbose("finish()", "value:", value);
|
|
127
|
-
if (value && value.msg) {
|
|
128
|
-
console.log(value.msg);
|
|
129
|
-
}
|
|
130
|
-
cliControl.end();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
5
|
+
*
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const async = require('async'),
|
|
10
|
+
nopt = require('nopt'),
|
|
11
|
+
log = require('npmlog'),
|
|
12
|
+
path = require('path'),
|
|
13
|
+
shellLib = require('./../lib/shell'),
|
|
14
|
+
commonTools = require('./../lib/base/common-tools');
|
|
15
|
+
|
|
16
|
+
const version = commonTools.version,
|
|
17
|
+
cliControl = commonTools.cliControl,
|
|
18
|
+
help = commonTools.help,
|
|
19
|
+
setupDevice = commonTools.setupDevice,
|
|
20
|
+
appdata = commonTools.appdata,
|
|
21
|
+
errHndl = commonTools.errMsg;
|
|
22
|
+
|
|
23
|
+
const processName = path.basename(process.argv[1]).replace(/.js/, '');
|
|
24
|
+
|
|
25
|
+
process.on('uncaughtException', function(err) {
|
|
26
|
+
log.error('uncaughtException', err.toString());
|
|
27
|
+
log.verbose('uncaughtException', err.stack);
|
|
28
|
+
cliControl.end(-1);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const knownOpts = {
|
|
32
|
+
"device": [String, null],
|
|
33
|
+
"device-list": Boolean,
|
|
34
|
+
"display": [String, null],
|
|
35
|
+
"version": Boolean,
|
|
36
|
+
"run": [String, null],
|
|
37
|
+
"help": Boolean,
|
|
38
|
+
"level": ['silly', 'verbose', 'info', 'http', 'warn', 'error']
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const shortHands = {
|
|
42
|
+
"d": ["--device"],
|
|
43
|
+
"D": ["--device-list"],
|
|
44
|
+
"dp": ["--display"],
|
|
45
|
+
"V": ["--version"],
|
|
46
|
+
"r": ["--run"],
|
|
47
|
+
"h": ["--help"],
|
|
48
|
+
"v": ["--level", "verbose"]
|
|
49
|
+
};
|
|
50
|
+
const argv = nopt(knownOpts, shortHands, process.argv, 2 /* drop 'node' & 'ares-shell.js'*/);
|
|
51
|
+
|
|
52
|
+
log.heading = processName;
|
|
53
|
+
log.level = argv.level || 'warn';
|
|
54
|
+
log.verbose("argv", argv);
|
|
55
|
+
|
|
56
|
+
const curConfigData = appdata.getConfig(true);
|
|
57
|
+
if (!["ose", "apollo"].includes(curConfigData.profile)) {
|
|
58
|
+
return finish(errHndl.getErrMsg("NOT_SUPPORT_COMMOND", curConfigData.profile));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const options = {
|
|
62
|
+
device: argv.device,
|
|
63
|
+
display: argv.display
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
let op;
|
|
67
|
+
if (argv['device-list']) {
|
|
68
|
+
op = deviceList;
|
|
69
|
+
} else if (argv.version) {
|
|
70
|
+
version.showVersionAndExit();
|
|
71
|
+
} else if (argv.run) {
|
|
72
|
+
op = run;
|
|
73
|
+
} else if (argv.help) {
|
|
74
|
+
showUsage();
|
|
75
|
+
cliControl.end();
|
|
76
|
+
} else {
|
|
77
|
+
op = shell;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (op) {
|
|
81
|
+
version.checkNodeVersion(function() {
|
|
82
|
+
async.series([
|
|
83
|
+
op.bind(this)
|
|
84
|
+
],finish);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function showUsage() {
|
|
89
|
+
help.display(processName, appdata.getConfig(true).profile);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function deviceList() {
|
|
93
|
+
setupDevice.showDeviceList(finish);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function run() {
|
|
97
|
+
if (argv.display !== undefined && isNaN(Number(argv.display))) {
|
|
98
|
+
return finish(errHndl.getErrMsg("INVALID_DISPLAY"));
|
|
99
|
+
}
|
|
100
|
+
shellLib.remoteRun(options, argv.run, finish);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function shell() {
|
|
104
|
+
if (argv.display !== undefined && isNaN(Number(argv.display))) {
|
|
105
|
+
return finish(errHndl.getErrMsg("INVALID_DISPLAY"));
|
|
106
|
+
}
|
|
107
|
+
shellLib.shell(options, finish);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function finish(err, value) {
|
|
111
|
+
log.info("finish()");
|
|
112
|
+
if (err) {
|
|
113
|
+
// handle err from getErrMsg()
|
|
114
|
+
if (Array.isArray(err) && err.length > 0) {
|
|
115
|
+
for (const index in err) {
|
|
116
|
+
log.error(err[index].heading, err[index].message);
|
|
117
|
+
}
|
|
118
|
+
log.verbose(err[0].stack);
|
|
119
|
+
} else {
|
|
120
|
+
// handle general err (string & object)
|
|
121
|
+
log.error(err.toString());
|
|
122
|
+
log.verbose(err.stack);
|
|
123
|
+
}
|
|
124
|
+
cliControl.end(-1);
|
|
125
|
+
} else {
|
|
126
|
+
log.verbose("finish()", "value:", value);
|
|
127
|
+
if (value && value.msg) {
|
|
128
|
+
console.log(value.msg);
|
|
129
|
+
}
|
|
130
|
+
cliControl.end();
|
|
131
|
+
}
|
|
132
|
+
}
|