@webos-tools/cli 3.2.1 → 3.2.2
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/APIs.js +79 -79
- package/CHANGELOG.md +7 -0
- package/LICENSE +201 -201
- package/bin/ares-config.js +0 -0
- package/bin/ares-device-info.js +30 -30
- package/bin/ares-device.js +0 -0
- package/bin/ares-generate.js +274 -274
- package/bin/ares-inspect.js +179 -179
- package/bin/ares-install.js +223 -223
- package/bin/ares-launch.js +0 -0
- package/bin/ares-log.js +258 -258
- package/bin/ares-novacom.js +0 -0
- package/bin/ares-package.js +0 -0
- 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 +0 -0
- package/bin/ares-shell.js +132 -132
- package/bin/ares.js +166 -166
- package/files/conf/ipk.json +30 -30
- 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 +7 -7
- 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 +28 -28
- 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/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-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/icon/icon.png +0 -0
- 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/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/files/templates/tv-sdk-templates/webicon/icon.png +0 -0
- package/files/templates/tv-sdk-templates/webicon/largeIcon.png +0 -0
- package/lib/base/ares.html +40 -40
- package/lib/base/cli-appdata.js +290 -290
- 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/sdkenv.js +59 -59
- package/lib/base/server.js +137 -137
- package/lib/base/version-tools.js +79 -79
- package/lib/device.js +1419 -1419
- package/lib/inspect.js +493 -493
- package/lib/log.js +584 -584
- package/lib/package.js +1 -3
- 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 +1 -1
- 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 -397
- 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-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/GLES2 +0 -0
- package/spec/tempFiles/nativeApp/auto/pkg_arm64/appinfo.json +9 -9
- package/spec/tempFiles/nativeApp/ose/pkg_arm/Hello +0 -0
- 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/Hello +0 -0
- package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/appinfo.json +9 -9
- package/spec/tempFiles/nativeApp/rsi/pkg_x86/GLES2 +0 -0
- 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 +57 -57
- package/spec/test_data/ares.json +50 -50
- package/.vscode/c_cpp_properties.json +0 -21
- package/.vscode/launch.json +0 -97
- package/.vscode/settings.json +0 -13
- package/.vscode/tasks.json +0 -32
- package/webos-tools-cli-3.2.1.tgz +0 -0
package/lib/base/luna.js
CHANGED
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const npmlog = require('npmlog'),
|
|
8
|
-
errHndl = require('./error-handler'),
|
|
9
|
-
Eof = require('../util/eof');
|
|
10
|
-
|
|
11
|
-
(function() {
|
|
12
|
-
const log = npmlog;
|
|
13
|
-
log.heading = 'luna';
|
|
14
|
-
log.level = 'http';
|
|
15
|
-
|
|
16
|
-
const luna = {
|
|
17
|
-
/**
|
|
18
|
-
* send a command on a luna bus
|
|
19
|
-
* @property options {novacom.Session} session
|
|
20
|
-
* @param {Object} options
|
|
21
|
-
* @param {Object} addr
|
|
22
|
-
* @property addr {String} service luna service name
|
|
23
|
-
* @property addr {String} [folder] containing folder of the requested method
|
|
24
|
-
* @property addr {String} method the luna method to invoke
|
|
25
|
-
* @param {Object} param the unique luna parameter
|
|
26
|
-
* @param {Function} onResponse the callback invoked at each JSON object received from luna-send
|
|
27
|
-
* @property onResponse {Object} obj the JSON object received
|
|
28
|
-
* @property onResponse {Function} next a common-js callback
|
|
29
|
-
* @param next {Function} next a common-js callback
|
|
30
|
-
*/
|
|
31
|
-
send: function(options, addr, param, onResponse, next) {
|
|
32
|
-
const session = options && options.session;
|
|
33
|
-
// 'is' is used to transmit an EOF to
|
|
34
|
-
// terminate the remote luna-send. this is
|
|
35
|
-
// the only way to terminate an interactive
|
|
36
|
-
// request 'luna-send -i'...
|
|
37
|
-
const is = new Eof(),
|
|
38
|
-
url = ['luna:/', addr.service, addr.folder, addr.method].join('/');
|
|
39
|
-
let result, mode, sessionCall = "";
|
|
40
|
-
|
|
41
|
-
is.pause();
|
|
42
|
-
if (options && options.nReplies) {
|
|
43
|
-
mode = "-n " + options.nReplies + " ";
|
|
44
|
-
} else {
|
|
45
|
-
mode = "-i ";
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (options && options.sessionCall && options.sessionId) {
|
|
49
|
-
sessionCall = "-c " + options.sessionId + " ";
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
log.verbose("luna#send()", "calling:", mode + sessionCall + url + " '" + JSON.stringify(param) + "'");
|
|
53
|
-
session.run(session.getDevice().lunaSend + " " + mode + sessionCall + url + " '" + JSON.stringify(param) + "'", is /* stdin*/, _onData, process.stderr, function(err) {
|
|
54
|
-
if (err) {
|
|
55
|
-
next(err);
|
|
56
|
-
}
|
|
57
|
-
// success when the output of the
|
|
58
|
-
// command is correctly interpreted,
|
|
59
|
-
// not simply when the command exit
|
|
60
|
-
// with a success exit code.
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
let jsonLine = "";
|
|
64
|
-
|
|
65
|
-
// Break string into lines (JSON.parse needs a
|
|
66
|
-
// single object per call).
|
|
67
|
-
function _onData(data) {
|
|
68
|
-
let str;
|
|
69
|
-
if (Buffer.isBuffer(data)) {
|
|
70
|
-
str = data.toString();
|
|
71
|
-
} else {
|
|
72
|
-
str = data;
|
|
73
|
-
}
|
|
74
|
-
str.split(/\r?\n/).forEach(_onLine);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function _onLine(line) {
|
|
78
|
-
jsonLine += line;
|
|
79
|
-
|
|
80
|
-
try {
|
|
81
|
-
result = JSON.parse(jsonLine);
|
|
82
|
-
log.verbose('luna#send()', 'response:', result);
|
|
83
|
-
|
|
84
|
-
jsonLine = "";
|
|
85
|
-
if (result.returnValue === false) {
|
|
86
|
-
is.destroy();
|
|
87
|
-
const errValue = (result.errorText ? result.errorText :
|
|
88
|
-
(result.errorMessage ? result.errorMessage : ''));
|
|
89
|
-
next(errHndl.getErrMsg("FAILED_CALL_LUNA", errValue, null, addr.service));
|
|
90
|
-
} else {
|
|
91
|
-
onResponse(result, function(err, value) {
|
|
92
|
-
log.silly('luna#send()', "err:", err, ", value:", value);
|
|
93
|
-
if (err || value) {
|
|
94
|
-
log.silly('luna#send()', "closing exec stream");
|
|
95
|
-
// processing completed or failed
|
|
96
|
-
next(err, value);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
} catch(e) {
|
|
101
|
-
// ignore the parsing error:
|
|
102
|
-
// the line may be incomplete
|
|
103
|
-
// & not yet JSON-parseable
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
sendWithoutErrorHandle: function(options, addr, param, onResponse, next) {
|
|
108
|
-
const session = options && options.session;
|
|
109
|
-
// 'is' is used to transmit an EOF to
|
|
110
|
-
// terminate the remote luna-send. this is
|
|
111
|
-
// the only way to terminate an interactive
|
|
112
|
-
// request 'luna-send -i'...
|
|
113
|
-
const is = new Eof(),
|
|
114
|
-
url = ['luna:/', addr.service, addr.folder, addr.method].join('/');
|
|
115
|
-
let result, mode;
|
|
116
|
-
|
|
117
|
-
is.pause();
|
|
118
|
-
if (options && options.nReplies) {
|
|
119
|
-
mode = "-n " + options.nReplies + " ";
|
|
120
|
-
} else {
|
|
121
|
-
mode = "-i ";
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
log.verbose("luna#sendWithoutErrorHandle()", "calling:", url + " '" + JSON.stringify(param) + "'");
|
|
125
|
-
session.run(session.getDevice().lunaSend + " " + mode + url + " '" + JSON.stringify(param) + "'", is /* stdin*/, _onData, process.stderr, function(err) {
|
|
126
|
-
if (err) {
|
|
127
|
-
next(err);
|
|
128
|
-
}
|
|
129
|
-
// success when the output of the
|
|
130
|
-
// command is correctly interpreted,
|
|
131
|
-
// not simply when the command exit
|
|
132
|
-
// with a success exit code.
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
let jsonLine = "";
|
|
136
|
-
|
|
137
|
-
// Break string into lines (JSON.parse needs a
|
|
138
|
-
// single object per call).
|
|
139
|
-
function _onData(data) {
|
|
140
|
-
let str;
|
|
141
|
-
if (Buffer.isBuffer(data)) {
|
|
142
|
-
str = data.toString();
|
|
143
|
-
} else {
|
|
144
|
-
str = data;
|
|
145
|
-
}
|
|
146
|
-
str.split(/\r?\n/).forEach(_onLine);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
function _onLine(line) {
|
|
150
|
-
jsonLine += line;
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
result = JSON.parse(jsonLine);
|
|
154
|
-
log.verbose('luna#sendWithoutErrorHandle()', 'response:', result);
|
|
155
|
-
|
|
156
|
-
jsonLine = "";
|
|
157
|
-
onResponse(result, function(err, value) {
|
|
158
|
-
log.silly('luna#sendWithoutErrorHandle()', "err:", err, ", value:", value);
|
|
159
|
-
if (err || value) {
|
|
160
|
-
log.silly('luna#sendWithoutErrorHandle()', "closing exec stream");
|
|
161
|
-
// processing completed or failed
|
|
162
|
-
next(err, value);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
} catch(e) {
|
|
166
|
-
// ignore the parsing error:
|
|
167
|
-
// the line may be incomplete
|
|
168
|
-
// & not yet JSON-parseable
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
if (typeof module !== 'undefined' && module.exports) {
|
|
175
|
-
module.exports = luna;
|
|
176
|
-
}
|
|
177
|
-
}());
|
|
178
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const npmlog = require('npmlog'),
|
|
8
|
+
errHndl = require('./error-handler'),
|
|
9
|
+
Eof = require('../util/eof');
|
|
10
|
+
|
|
11
|
+
(function() {
|
|
12
|
+
const log = npmlog;
|
|
13
|
+
log.heading = 'luna';
|
|
14
|
+
log.level = 'http';
|
|
15
|
+
|
|
16
|
+
const luna = {
|
|
17
|
+
/**
|
|
18
|
+
* send a command on a luna bus
|
|
19
|
+
* @property options {novacom.Session} session
|
|
20
|
+
* @param {Object} options
|
|
21
|
+
* @param {Object} addr
|
|
22
|
+
* @property addr {String} service luna service name
|
|
23
|
+
* @property addr {String} [folder] containing folder of the requested method
|
|
24
|
+
* @property addr {String} method the luna method to invoke
|
|
25
|
+
* @param {Object} param the unique luna parameter
|
|
26
|
+
* @param {Function} onResponse the callback invoked at each JSON object received from luna-send
|
|
27
|
+
* @property onResponse {Object} obj the JSON object received
|
|
28
|
+
* @property onResponse {Function} next a common-js callback
|
|
29
|
+
* @param next {Function} next a common-js callback
|
|
30
|
+
*/
|
|
31
|
+
send: function(options, addr, param, onResponse, next) {
|
|
32
|
+
const session = options && options.session;
|
|
33
|
+
// 'is' is used to transmit an EOF to
|
|
34
|
+
// terminate the remote luna-send. this is
|
|
35
|
+
// the only way to terminate an interactive
|
|
36
|
+
// request 'luna-send -i'...
|
|
37
|
+
const is = new Eof(),
|
|
38
|
+
url = ['luna:/', addr.service, addr.folder, addr.method].join('/');
|
|
39
|
+
let result, mode, sessionCall = "";
|
|
40
|
+
|
|
41
|
+
is.pause();
|
|
42
|
+
if (options && options.nReplies) {
|
|
43
|
+
mode = "-n " + options.nReplies + " ";
|
|
44
|
+
} else {
|
|
45
|
+
mode = "-i ";
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (options && options.sessionCall && options.sessionId) {
|
|
49
|
+
sessionCall = "-c " + options.sessionId + " ";
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
log.verbose("luna#send()", "calling:", mode + sessionCall + url + " '" + JSON.stringify(param) + "'");
|
|
53
|
+
session.run(session.getDevice().lunaSend + " " + mode + sessionCall + url + " '" + JSON.stringify(param) + "'", is /* stdin*/, _onData, process.stderr, function(err) {
|
|
54
|
+
if (err) {
|
|
55
|
+
next(err);
|
|
56
|
+
}
|
|
57
|
+
// success when the output of the
|
|
58
|
+
// command is correctly interpreted,
|
|
59
|
+
// not simply when the command exit
|
|
60
|
+
// with a success exit code.
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
let jsonLine = "";
|
|
64
|
+
|
|
65
|
+
// Break string into lines (JSON.parse needs a
|
|
66
|
+
// single object per call).
|
|
67
|
+
function _onData(data) {
|
|
68
|
+
let str;
|
|
69
|
+
if (Buffer.isBuffer(data)) {
|
|
70
|
+
str = data.toString();
|
|
71
|
+
} else {
|
|
72
|
+
str = data;
|
|
73
|
+
}
|
|
74
|
+
str.split(/\r?\n/).forEach(_onLine);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function _onLine(line) {
|
|
78
|
+
jsonLine += line;
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
result = JSON.parse(jsonLine);
|
|
82
|
+
log.verbose('luna#send()', 'response:', result);
|
|
83
|
+
|
|
84
|
+
jsonLine = "";
|
|
85
|
+
if (result.returnValue === false) {
|
|
86
|
+
is.destroy();
|
|
87
|
+
const errValue = (result.errorText ? result.errorText :
|
|
88
|
+
(result.errorMessage ? result.errorMessage : ''));
|
|
89
|
+
next(errHndl.getErrMsg("FAILED_CALL_LUNA", errValue, null, addr.service));
|
|
90
|
+
} else {
|
|
91
|
+
onResponse(result, function(err, value) {
|
|
92
|
+
log.silly('luna#send()', "err:", err, ", value:", value);
|
|
93
|
+
if (err || value) {
|
|
94
|
+
log.silly('luna#send()', "closing exec stream");
|
|
95
|
+
// processing completed or failed
|
|
96
|
+
next(err, value);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
} catch(e) {
|
|
101
|
+
// ignore the parsing error:
|
|
102
|
+
// the line may be incomplete
|
|
103
|
+
// & not yet JSON-parseable
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
sendWithoutErrorHandle: function(options, addr, param, onResponse, next) {
|
|
108
|
+
const session = options && options.session;
|
|
109
|
+
// 'is' is used to transmit an EOF to
|
|
110
|
+
// terminate the remote luna-send. this is
|
|
111
|
+
// the only way to terminate an interactive
|
|
112
|
+
// request 'luna-send -i'...
|
|
113
|
+
const is = new Eof(),
|
|
114
|
+
url = ['luna:/', addr.service, addr.folder, addr.method].join('/');
|
|
115
|
+
let result, mode;
|
|
116
|
+
|
|
117
|
+
is.pause();
|
|
118
|
+
if (options && options.nReplies) {
|
|
119
|
+
mode = "-n " + options.nReplies + " ";
|
|
120
|
+
} else {
|
|
121
|
+
mode = "-i ";
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
log.verbose("luna#sendWithoutErrorHandle()", "calling:", url + " '" + JSON.stringify(param) + "'");
|
|
125
|
+
session.run(session.getDevice().lunaSend + " " + mode + url + " '" + JSON.stringify(param) + "'", is /* stdin*/, _onData, process.stderr, function(err) {
|
|
126
|
+
if (err) {
|
|
127
|
+
next(err);
|
|
128
|
+
}
|
|
129
|
+
// success when the output of the
|
|
130
|
+
// command is correctly interpreted,
|
|
131
|
+
// not simply when the command exit
|
|
132
|
+
// with a success exit code.
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
let jsonLine = "";
|
|
136
|
+
|
|
137
|
+
// Break string into lines (JSON.parse needs a
|
|
138
|
+
// single object per call).
|
|
139
|
+
function _onData(data) {
|
|
140
|
+
let str;
|
|
141
|
+
if (Buffer.isBuffer(data)) {
|
|
142
|
+
str = data.toString();
|
|
143
|
+
} else {
|
|
144
|
+
str = data;
|
|
145
|
+
}
|
|
146
|
+
str.split(/\r?\n/).forEach(_onLine);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function _onLine(line) {
|
|
150
|
+
jsonLine += line;
|
|
151
|
+
|
|
152
|
+
try {
|
|
153
|
+
result = JSON.parse(jsonLine);
|
|
154
|
+
log.verbose('luna#sendWithoutErrorHandle()', 'response:', result);
|
|
155
|
+
|
|
156
|
+
jsonLine = "";
|
|
157
|
+
onResponse(result, function(err, value) {
|
|
158
|
+
log.silly('luna#sendWithoutErrorHandle()', "err:", err, ", value:", value);
|
|
159
|
+
if (err || value) {
|
|
160
|
+
log.silly('luna#sendWithoutErrorHandle()', "closing exec stream");
|
|
161
|
+
// processing completed or failed
|
|
162
|
+
next(err, value);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
} catch(e) {
|
|
166
|
+
// ignore the parsing error:
|
|
167
|
+
// the line may be incomplete
|
|
168
|
+
// & not yet JSON-parseable
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
if (typeof module !== 'undefined' && module.exports) {
|
|
175
|
+
module.exports = luna;
|
|
176
|
+
}
|
|
177
|
+
}());
|
|
178
|
+
|
package/lib/base/sdkenv.js
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const fs = require('fs'),
|
|
8
|
-
path = require('path');
|
|
9
|
-
|
|
10
|
-
(function() {
|
|
11
|
-
const sdkenv = {};
|
|
12
|
-
function SdkEnv() {
|
|
13
|
-
// Read SDK ENV
|
|
14
|
-
let sdkPath,
|
|
15
|
-
sdkBrowserPath;
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const confFile = path.join(__dirname, '../../files/conf/sdk.json'),
|
|
19
|
-
sdkConf = JSON.parse(fs.readFileSync(confFile, 'utf8'));
|
|
20
|
-
sdkPath = process.env[sdkConf.SDKPATH_ENV_NAME];
|
|
21
|
-
sdkBrowserPath = sdkConf.BROWSER_PATH_IN_SDK[process.platform];
|
|
22
|
-
} catch(e) {
|
|
23
|
-
// TBD. allowing exceptions...
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const browserPath = process.env.ARES_BUNDLE_BROWSER
|
|
27
|
-
|| (sdkPath && sdkBrowserPath) ? path.join(sdkPath, sdkBrowserPath) : null;
|
|
28
|
-
this.envList = {};
|
|
29
|
-
|
|
30
|
-
if (sdkPath && fs.existsSync(sdkPath)) {
|
|
31
|
-
this.envList.SDK = sdkPath;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (browserPath && fs.existsSync(browserPath)) {
|
|
35
|
-
this.envList.BROWSER = browserPath;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
sdkenv.Env = SdkEnv;
|
|
40
|
-
|
|
41
|
-
sdkenv.create = function() {
|
|
42
|
-
return new SdkEnv();
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
SdkEnv.prototype = {
|
|
46
|
-
getEnvList: function(next) {
|
|
47
|
-
const envNameList = Object.keys(this.envList);
|
|
48
|
-
setImmediate(next, null, envNameList);
|
|
49
|
-
},
|
|
50
|
-
getEnvValue: function(name, next) {
|
|
51
|
-
const envValue = this.envList[name];
|
|
52
|
-
setImmediate(next, null, envValue);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
if (typeof module !== 'undefined' && module.exports) {
|
|
57
|
-
module.exports = sdkenv;
|
|
58
|
-
}
|
|
59
|
-
}());
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2020-2024 LG Electronics Inc.
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs'),
|
|
8
|
+
path = require('path');
|
|
9
|
+
|
|
10
|
+
(function() {
|
|
11
|
+
const sdkenv = {};
|
|
12
|
+
function SdkEnv() {
|
|
13
|
+
// Read SDK ENV
|
|
14
|
+
let sdkPath,
|
|
15
|
+
sdkBrowserPath;
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
const confFile = path.join(__dirname, '../../files/conf/sdk.json'),
|
|
19
|
+
sdkConf = JSON.parse(fs.readFileSync(confFile, 'utf8'));
|
|
20
|
+
sdkPath = process.env[sdkConf.SDKPATH_ENV_NAME];
|
|
21
|
+
sdkBrowserPath = sdkConf.BROWSER_PATH_IN_SDK[process.platform];
|
|
22
|
+
} catch(e) {
|
|
23
|
+
// TBD. allowing exceptions...
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const browserPath = process.env.ARES_BUNDLE_BROWSER
|
|
27
|
+
|| (sdkPath && sdkBrowserPath) ? path.join(sdkPath, sdkBrowserPath) : null;
|
|
28
|
+
this.envList = {};
|
|
29
|
+
|
|
30
|
+
if (sdkPath && fs.existsSync(sdkPath)) {
|
|
31
|
+
this.envList.SDK = sdkPath;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (browserPath && fs.existsSync(browserPath)) {
|
|
35
|
+
this.envList.BROWSER = browserPath;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
sdkenv.Env = SdkEnv;
|
|
40
|
+
|
|
41
|
+
sdkenv.create = function() {
|
|
42
|
+
return new SdkEnv();
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
SdkEnv.prototype = {
|
|
46
|
+
getEnvList: function(next) {
|
|
47
|
+
const envNameList = Object.keys(this.envList);
|
|
48
|
+
setImmediate(next, null, envNameList);
|
|
49
|
+
},
|
|
50
|
+
getEnvValue: function(name, next) {
|
|
51
|
+
const envValue = this.envList[name];
|
|
52
|
+
setImmediate(next, null, envValue);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
if (typeof module !== 'undefined' && module.exports) {
|
|
57
|
+
module.exports = sdkenv;
|
|
58
|
+
}
|
|
59
|
+
}());
|