@webos-tools/cli 3.1.1 → 3.1.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +13 -4
  2. package/README.md +21 -19
  3. package/bin/ares-config.js +6 -3
  4. package/bin/ares-device.js +2 -2
  5. package/bin/ares-log.js +6 -2
  6. package/bin/ares-pull.js +1 -1
  7. package/bin/ares-push.js +1 -1
  8. package/bin/ares-setup-device.js +8 -11
  9. package/bin/ares-shell.js +1 -1
  10. package/bin/ares.js +1 -1
  11. package/files/conf/ares.json +5 -5
  12. package/files/conf/novacom-devices.json +18 -1
  13. package/files/conf-base/env/sdk-apollo.json +8 -0
  14. package/files/conf-base/profile/config-apollo.json +29 -0
  15. package/files/conf-base/profile/config-ose.json +1 -1
  16. package/files/conf-base/template-conf/apollo-sdk-templates.json +51 -0
  17. package/files/help/ares-config.help +6 -1
  18. package/files/help/ares-device.help +15 -0
  19. package/files/help/ares-generate.help +27 -1
  20. package/files/help/ares-inspect.help +6 -0
  21. package/files/help/ares-install.help +5 -0
  22. package/files/help/ares-launch.help +5 -0
  23. package/files/help/ares-server.help +5 -0
  24. package/files/help/ares-setup-device.help +40 -0
  25. package/files/help/ares.help +5 -0
  26. package/files/schema/NovacomDevices.schema +2 -1
  27. package/files/templates/apollo-sdk-templates/appinfo/appinfo.json +10 -0
  28. package/files/templates/apollo-sdk-templates/bootplate-web/index.html +88 -0
  29. package/files/templates/apollo-sdk-templates/hosted-webapp/index.html +14 -0
  30. package/files/templates/apollo-sdk-templates/icon/icon.png +0 -0
  31. package/files/templates/apollo-sdk-templates/js-service/helloclient.js +31 -0
  32. package/files/templates/apollo-sdk-templates/js-service/helloworld_webos_service.js +188 -0
  33. package/files/templates/apollo-sdk-templates/serviceinfo/package.json +11 -0
  34. package/files/templates/apollo-sdk-templates/serviceinfo/services.json +8 -0
  35. package/lib/base/novacom.js +1 -1
  36. package/lib/base/setup-device.js +1 -1
  37. package/lib/device.js +1 -1
  38. package/lib/package.js +3 -1
  39. package/lib/shell.js +1 -1
  40. package/npm-shrinkwrap.json +2 -2
  41. package/package.json +1 -1
  42. package/spec/jsSpecs/ares-config.spec.js +10 -0
  43. package/spec/jsSpecs/ares-generate.spec.js +4 -4
  44. package/spec/jsSpecs/ares-log.spec.js +1 -1
  45. package/spec/test_data/ares-generate.json +18 -1
  46. package/spec/test_data/ares.json +17 -0
  47. package/webos-tools-cli-3.1.2.tgz +0 -0
@@ -32,6 +32,24 @@
32
32
  "",
33
33
  "LEVEL is priority of logs. (e.g., silly, verbose, info, warn, error)"
34
34
  ],
35
+ "apollo": [
36
+ "This command manages the information of the devices.",
37
+ "",
38
+ "** Attributes of DEVICE_INFO **",
39
+ " description [string] description of target device",
40
+ " host [string] ip address",
41
+ " port [string] port number",
42
+ " username [string] user name to connect ('developer')",
43
+ " privatekey [string] ssh private key file name",
44
+ " ssh private key should exist under $HOME/.ssh/",
45
+ " password [string] password for ssh connection",
46
+ " default [boolean] set default device with 'add' option",
47
+ "",
48
+ "This command can set a default device.",
49
+ "If you don't specify a target device, the default device is used as the target device.",
50
+ "",
51
+ "LEVEL is priority of logs. (e.g., silly, verbose, info, warn, error)"
52
+ ],
35
53
  "tv": [
36
54
  "This command manages the information of the devices.",
37
55
  "",
@@ -77,6 +95,28 @@
77
95
  "ares-setup-device -m DEVICE -i \"password=\"",
78
96
  ""
79
97
  ],
98
+ "apollo" : [
99
+ "",
100
+ "# Add a DEVICE and set the username, host, port",
101
+ "ares-setup-device -a DEVICE -i \"{'username':'root', 'host':'127.0.0.1','port':'22'}\"",
102
+ " Or",
103
+ "ares-setup-device -a DEVICE -i \"username=root\" -i \"host=127.0.0.1\" -i \"port=22\"",
104
+ "",
105
+ "# Modify the information of the DEVICE",
106
+ "ares-setup-device -m DEVICE -i \"{'username':'developer','host':'192.168.0.123'}\"",
107
+ " Or",
108
+ "ares-setup-device -m DEVICE -i \"username=developer\" -i \"host=192.168.0.123\"",
109
+ "",
110
+ "# Remove the DEVICE",
111
+ "ares-setup-device -r DEVICE",
112
+ "",
113
+ "# Set default the DEVICE",
114
+ "ares-setup-device -f DEVICE",
115
+ "",
116
+ "# Change the ssh password of the DEVICE as an empty value",
117
+ "ares-setup-device -m DEVICE -i \"password=\"",
118
+ ""
119
+ ],
80
120
  "tv" : [
81
121
  "",
82
122
  "# Add a DEVICE and set the username, host, port",
@@ -18,6 +18,10 @@
18
18
  "ose" : [
19
19
  "",
20
20
  "LEVEL is priority of logs. (e.g., silly, verbose, info, warn, error)"
21
+ ],
22
+ "apollo" : [
23
+ "",
24
+ "LEVEL is priority of logs. (e.g., silly, verbose, info, warn, error)"
21
25
  ]
22
26
  }
23
27
  ],
@@ -33,6 +37,7 @@
33
37
  "cmdOpt":"option",
34
38
  "default" : ["list", "<COMMAND>", "help", "version"],
35
39
  "ose" : ["verbose", "level"],
40
+ "apollo" : ["verbose", "level"],
36
41
  "list" : [
37
42
  "-l, --list @TAB@ List all the ares commands"
38
43
  ],
@@ -16,7 +16,8 @@
16
16
  "profile": {
17
17
  "enum": [
18
18
  "ose",
19
- "tv"
19
+ "tv",
20
+ "apollo"
20
21
  ],
21
22
  "description": "webOS Device Type"
22
23
  },
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": "com.domain.app",
3
+ "version": "1.0.0",
4
+ "vendor": "My Company",
5
+ "type": "web",
6
+ "main": "index.html",
7
+ "title": "new app",
8
+ "icon": "icon.png",
9
+ "requiredPermissions": ["time.query", "activity.operation"]
10
+ }
@@ -0,0 +1,88 @@
1
+ <!--
2
+ Copyright (c) 2020-2024 LG Electronics Inc.
3
+
4
+ SPDX-License-Identifier: Apache-2.0
5
+ -->
6
+
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head>
10
+ <title>Example Web App</title>
11
+ <style type="text/css">
12
+ body {
13
+ width: 100%;
14
+ height: 100%;
15
+ background-color:#202020;
16
+ }
17
+ div {
18
+ position:absolute;
19
+ height:100%;
20
+ width:100%;
21
+ display: table;
22
+ }
23
+ h1 {
24
+ display: table-cell;
25
+ vertical-align: middle;
26
+ text-align:center;
27
+ color:#FFFFFF;
28
+ }
29
+ </style>
30
+ <script type="text/javascript">
31
+ window.onload = function() {
32
+ var bridge = new WebOSServiceBridge();
33
+ /*
34
+ * getTimeApi calls gettime of systemservice, a module in the platform.
35
+ */
36
+ var getTimeApi = 'luna://com.webos.service.systemservice/clock/getTime';
37
+ var getTimeParams = '{}';
38
+
39
+ /*
40
+ * helloApi calls the hello method of js_service template provided by CLI.
41
+ * In this case, the service name is used as default name "com.domain.app.service" is.
42
+ * If you change this service name, you need to change the service name of the following API.
43
+ *
44
+ * If you change the name to helloParmas as you want, the contents will be reflected on the screen.
45
+ */
46
+ var helloApi = 'luna://com.domain.app.service/hello';
47
+ var helloParams = '{"name":"webOS"}';
48
+
49
+ function getTime_callback(msg){
50
+ var arg = JSON.parse(msg);
51
+ if (arg.returnValue) {
52
+ console.log("[APP_NAME: example web app] GETTIME_SUCCESS UTC : " + arg.utc);
53
+ //webOSSystem.PmLogString(6, "GETTIME_SUCCESS", '{"APP_NAME": "example web app"}', "UTC : " + arg.utc);
54
+ }
55
+ else {
56
+ console.error("[APP_NAME: example web app] GETTIME_FAILED errorText : " + arg.errorText);
57
+ //webOSSystem.PmLogString(3, "GETTIME_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
58
+ }
59
+ }
60
+
61
+ function hello_callback(msg){
62
+ var arg = JSON.parse(msg);
63
+ if (arg.returnValue) {
64
+ document.getElementById("txt_msg").innerHTML = arg.Response;
65
+ console.log("[APP_NAME: example web app] CALLHELLO_SUCCESS response : " + arg.Response);
66
+ //webOSSystem.PmLogString(6, "CALLHELLO_SUCCESS", '{"APP_NAME": "example web app"}', "response : " + arg.Response);
67
+ }
68
+ else {
69
+ console.error("[APP_NAME: example web app] CALLHELLO_FAILED errorText : " + arg.errorText);
70
+ //webOSSystem.PmLogString(3, "CALLHELLO_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
71
+ }
72
+ }
73
+
74
+ bridge.onservicecallback = getTime_callback;
75
+ bridge.call(getTimeApi, getTimeParams);
76
+ document.getElementById("txt_msg").onclick = function() {
77
+ bridge.onservicecallback = hello_callback;
78
+ bridge.call(helloApi, helloParams);
79
+ };
80
+ }
81
+ </script>
82
+ </head>
83
+ <body>
84
+ <div>
85
+ <h1 id="txt_msg">Hello, Web Application!!</h1>
86
+ </div>
87
+ </body>
88
+ </html>
@@ -0,0 +1,14 @@
1
+ <!--
2
+ Copyright (c) 2020-2024 LG Electronics Inc.
3
+
4
+ SPDX-License-Identifier: Apache-2.0
5
+ -->
6
+
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head>
10
+ <script>location.href='http://webosose.org/';</script>
11
+ </head>
12
+ <body>
13
+ </body>
14
+ </html>
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright (c) 2020-2024 LG Electronics Inc.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ // helloclient.js
8
+ // Subscribe & cancel subscription to helloService's heartbeat method
9
+ const Service = require('webos-service');
10
+
11
+ const service = new Service("com.example.helloclient"); // Register com.example.helloworld
12
+
13
+ console.log("simple call");
14
+ // Change @SERVICE-NAME@ to real service name
15
+ service.call("luna://@SERVICE-NAME@/hello", {}, function(message) {
16
+ console.log("call @SERVICE-NAME@/hello");
17
+ console.log("message payload: " + JSON.stringify(message.payload));
18
+ const sub = service.subscribe("luna://@SERVICE-NAME@/heartbeat", {subscribe: true});
19
+ const max = 10;
20
+ let count = 0;
21
+ sub.addListener("response", function(msg) {
22
+ console.log(JSON.stringify(msg.payload));
23
+ if (++count >= max) {
24
+ sub.cancel();
25
+ setTimeout(function() {
26
+ console.log(max+" responses received, exiting...");
27
+ process.exit(0);
28
+ }, 1000);
29
+ }
30
+ });
31
+ });
@@ -0,0 +1,188 @@
1
+ /*
2
+ * Copyright (c) 2020-2024 LG Electronics Inc.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ // helloworld_webos_service.js
8
+ // is simple service, based on low-level luna-bus API
9
+
10
+ // eslint-disable-next-line import/no-unresolved
11
+ const pkgInfo = require('./package.json');
12
+ const Service = require('webos-service');
13
+
14
+ const service = new Service(pkgInfo.name); // Create service by service name on package.json
15
+ const logHeader = "[" + pkgInfo.name + "]";
16
+ let greeting = "Hello, World!";
17
+
18
+ // a method that always returns the same value
19
+ service.register("hello", function(message) {
20
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/hello");
21
+ console.log("In hello callback");
22
+ const name = message.payload.name ? message.payload.name : "World";
23
+
24
+ message.respond({
25
+ returnValue: true,
26
+ Response: "Hello, " + name + "!"
27
+ });
28
+ });
29
+
30
+ // set some state in the service
31
+ service.register("/config/setGreeting", function(message) {
32
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/config/setGreeting");
33
+ console.log("In setGreeting callback");
34
+ if (message.payload.greeting) {
35
+ greeting = message.payload.greeting;
36
+ } else {
37
+ message.respond({
38
+ returnValue: false,
39
+ errorText: "argument 'greeting' is required",
40
+ errorCode: 1
41
+ });
42
+ }
43
+ message.respond({
44
+ returnValue: true,
45
+ greeting: greeting
46
+ });
47
+ });
48
+
49
+ // call another service
50
+ service.register("time", function(message) {
51
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/time");
52
+ console.log("time callback");
53
+ service.call("luna://com.webos.service.systemservice/clock/getTime", {}, function(m2) {
54
+ console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.systemservice/clock/getTime");
55
+ const response = "You appear to have your UTC set to: " + m2.payload.utc;
56
+ console.log(response);
57
+ message.respond({message: response});
58
+ });
59
+ });
60
+
61
+ // handle subscription requests
62
+ const subscriptions = {};
63
+ let interval;
64
+ let x = 1;
65
+ function createInterval() {
66
+ if (interval) {
67
+ return;
68
+ }
69
+ console.log(logHeader, "create_interval");
70
+ console.log("create new interval");
71
+ interval = setInterval(function() {
72
+ sendResponses();
73
+ }, 1000);
74
+ }
75
+
76
+ // send responses to each subscribed client
77
+ function sendResponses() {
78
+ console.log(logHeader, "send_response");
79
+ console.log("Sending responses, subscription count=" + Object.keys(subscriptions).length);
80
+ for (const i in subscriptions) {
81
+ if (Object.prototype.hasOwnProperty.call(subscriptions, i)) {
82
+ const s = subscriptions[i];
83
+ s.respond({
84
+ returnValue: true,
85
+ event: "beat " + x
86
+ });
87
+ }
88
+ }
89
+ x++;
90
+ }
91
+
92
+ // listen for requests, and handle subscriptions via implicit event handlers in call
93
+ // to register
94
+ service.register("heartbeat", function(message) {
95
+ const uniqueToken = message.uniqueToken;
96
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat");
97
+ console.log("heartbeat callback, uniqueToken: " + uniqueToken + ", token: " + message.token);
98
+ message.respond({event: "beat"});
99
+ if (message.isSubscription) {
100
+ subscriptions[uniqueToken] = message;
101
+ if (!interval) {
102
+ createInterval();
103
+ }
104
+ }
105
+ },
106
+ function(message) {
107
+ const uniqueToken = message.uniqueToken;
108
+ console.log("Canceled " + uniqueToken);
109
+ delete subscriptions[uniqueToken];
110
+ const keys = Object.keys(subscriptions);
111
+ if (keys.length === 0) {
112
+ console.log("no more subscriptions, canceling interval");
113
+ clearInterval(interval);
114
+ interval = undefined;
115
+ }
116
+ });
117
+
118
+ // EventEmitter-based API for subscriptions
119
+ // note that the previous examples are actually using this API as well, they're
120
+ // just setting a "request" handler implicitly
121
+ const heartbeat2 = service.register("heartbeat2");
122
+ heartbeat2.on("request", function(message) {
123
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/request");
124
+ console.log("heartbeat callback");
125
+ message.respond({event: "beat"});
126
+ if (message.isSubscription) {
127
+ subscriptions[message.uniqueToken] = message;
128
+ if (!interval) {
129
+ createInterval();
130
+ }
131
+ }
132
+ });
133
+ heartbeat2.on("cancel", function(message) {
134
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/cancel");
135
+ console.log("Canceled " + message.uniqueToken);
136
+ delete subscriptions[message.uniqueToken];
137
+ const keys = Object.keys(subscriptions);
138
+ if (keys.length === 0) {
139
+ console.log("no more subscriptions, canceling interval");
140
+ clearInterval(interval);
141
+ interval = undefined;
142
+ }
143
+ });
144
+
145
+ service.register("ping", function(message) {
146
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/ping");
147
+ console.log("Ping! setting up activity");
148
+ const methodName = "luna://" + pkgInfo.name + "/pong";
149
+ const activitySpec = {
150
+ "activity": {
151
+ "name": "My Activity", // this needs to be unique, per service
152
+ "description": "do something", // required
153
+ "background": true, // can use foreground or background, or set individual properties (see Activity Specification below, for details)
154
+ "persist": true, // this activity will be persistent across reboots
155
+ "explicit": true, // this activity *must* be completed or cancelled explicitly, or it will be re-launched until it does
156
+ "callback": { // what service to call when this activity starts
157
+ "method": methodName, // URI to service
158
+ "params": { // parameters/arguments to pass to service
159
+ }
160
+ }
161
+ },
162
+ "start": true, // start the activity immediately when its requirements (if any) are met
163
+ "replace": true, // if an activity with the same name already exists, replace it
164
+ "subscribe": false // if "subscribe" is false, the activity needs to be adopted immediately, or it gets canceled
165
+ };
166
+ service.call("luna://com.webos.service.activitymanager/create", activitySpec, function(reply) {
167
+ console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.activitymanager/create");
168
+ const activityId = reply.payload.activityId;
169
+ console.log("ActivityId = " + activityId);
170
+ message.respond({msg: "Created activity "+ activityId});
171
+ });
172
+ });
173
+
174
+ service.register("pong", function(message) {
175
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/pong");
176
+ console.log("Pong!");
177
+ console.log(message.payload);
178
+ message.respond({message: "Pong"});
179
+ });
180
+
181
+ service.register("/do/re/me", function(message) {
182
+ console.log(logHeader, "SERVICE_METHOD_CALLED://do/re/me");
183
+ message.respond({verses:[
184
+ {doe: "a deer, a female deer"},
185
+ {ray: "a drop of golden sun"},
186
+ {me: "a name I call myself"}
187
+ ]});
188
+ });
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "com.domain.app.service",
3
+ "version": "1.0.0",
4
+ "description": "Helloworld service",
5
+ "main": "helloworld_webos_service.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "author": "",
10
+ "license": "BSD"
11
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "com.domain.app.service",
3
+ "description": "HelloWorld Service",
4
+ "services": [ {
5
+ "name": "com.domain.app.service",
6
+ "description": "HelloWorld Service"
7
+ } ]
8
+ }
@@ -975,7 +975,7 @@ const async = require('async'),
975
975
  chStream.on('close', function() {
976
976
  log.silly("novacom#Session()#run()", "event close (cmd:" + cmd + ")");
977
977
  if (err === undefined) {
978
- setImmediate(next);
978
+ setImmediate(next);
979
979
  }
980
980
  });
981
981
 
@@ -200,7 +200,7 @@ const async = require('async'),
200
200
  async.series([
201
201
  resolver.load.bind(resolver),
202
202
  resolver.modifyDeviceFile.bind(resolver, mode, inDevice),
203
- this.showDeviceList.bind(this),
203
+ this.showDeviceList.bind(this)
204
204
  ], function(err, results) {
205
205
  if (err) {
206
206
  return next(err);
package/lib/device.js CHANGED
@@ -1293,7 +1293,7 @@ const async = require('async'),
1293
1293
 
1294
1294
  function _captureScreenFile(next) {
1295
1295
  log.info("device#captureScreen()#_captureScreenFile()");
1296
- const cmd = "/bin/mkdir -p " + options.captureDirPath;
1296
+ const cmd = "/bin/mkdir -p " + options.captureDirPath + " && chmod 777 " + options.captureDirPath;
1297
1297
  options.session.run(cmd, null, null, null, function(err) {
1298
1298
  if (err) {
1299
1299
  return setImmediate(next, err);
package/lib/package.js CHANGED
@@ -25,6 +25,8 @@ const ar = require('ar-async'),
25
25
  temp = require('temp'),
26
26
  uglify = require('terser'),
27
27
  util = require('util'),
28
+ // zlib = require('zlib'),
29
+ // tarFilterPack = require('./tar-filter-pack'),
28
30
  errHndl = require('./base/error-handler'),
29
31
  tar = require('tar');
30
32
 
@@ -1619,7 +1621,7 @@ const ar = require('ar-async'),
1619
1621
  this.rscCount++;
1620
1622
  log.verbose("FOUND resourceinfo.json, rscCount " + this.rscCount);
1621
1623
  if (this.appCount > 0 || this.svcDir && this.svcDir.length > 0) {
1622
- return callback(errHndl.getErrMsg("NOT_PACKAGE_WITH_RESOURCE"));
1624
+ return callback(errHndl.getErrMsg("NOT_PACKAGE_WITH_RESOURCE"));
1623
1625
  }
1624
1626
  this.resources = this.resources || [];
1625
1627
  const rsc = {};
package/lib/shell.js CHANGED
@@ -34,7 +34,7 @@ const async = require('async'),
34
34
  },
35
35
  function(next) {
36
36
  if (options && options.display && !options.sessionCall) {
37
- return setImmediate(next, errHndl.getErrMsg("NOT_SUPPORT_SESSION"), {});
37
+ return setImmediate(next, errHndl.getErrMsg("NOT_SUPPORT_SESSION"), {});
38
38
  }
39
39
  next();
40
40
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@webos-tools/cli",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@webos-tools/cli",
9
- "version": "3.1.1",
9
+ "version": "3.1.2",
10
10
  "hasInstallScript": true,
11
11
  "license": "Apache-2.0",
12
12
  "os": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webos-tools/cli",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Command Line Interface for development webOS application and service",
5
5
  "main": "APIs.js",
6
6
  "scripts": {
@@ -42,6 +42,16 @@ describe(aresCmd + ' --profile(-p)', function() {
42
42
  });
43
43
  });
44
44
 
45
+ it("Set a device profile to apollo", function(done) {
46
+ exec(cmd + ' -p apollo', function (error, stdout, stderr) {
47
+ if (stderr && stderr.length > 0) {
48
+ common.detectNodeMessage(stderr);
49
+ }
50
+ expect(stdout).toContain("profile and config data is changed to apollo");
51
+ done();
52
+ });
53
+ });
54
+
45
55
  it("Set a device profile input", function(done) {
46
56
  exec(cmd + ` -p ${options.profile}`, function(error, stdout, stderr) {
47
57
  if (stderr && stderr.length > 0) {
@@ -100,7 +100,7 @@ describe(aresCmd +' --property', function() {
100
100
  });
101
101
 
102
102
  it('Set the properties of packageinfo.json', function(done) {
103
- if (options.profile === "ose") {
103
+ if (options.profile === "ose" || options.profile === "apollo") {
104
104
  pending(options.skipTxt);
105
105
  }
106
106
 
@@ -157,7 +157,7 @@ describe(aresCmd +' --property', function() {
157
157
  });
158
158
 
159
159
  it('Set the properties of qmlappinfo.json', function(done) {
160
- if (options.profile === "tv") {
160
+ if (options.profile === "tv" || options.profile === "apollo") {
161
161
  pending(options.skipTxt);
162
162
  }
163
163
 
@@ -222,7 +222,7 @@ describe(aresCmd + ' --template', function() {
222
222
  });
223
223
 
224
224
  it('packageinfo : packageinfo.json for webOS package', function(done) {
225
- if (options.profile === "ose") {
225
+ if (options.profile === "ose" || options.profile === "apollo") {
226
226
  pending(options.skipTxt);
227
227
  }
228
228
 
@@ -270,7 +270,7 @@ describe(aresCmd + ' --template', function() {
270
270
  });
271
271
 
272
272
  it('qmlapp : generate qml template app', function(done) {
273
- if (options.profile === "tv") {
273
+ if (options.profile === "tv" || options.profile === "apollo") {
274
274
  pending(options.skipTxt);
275
275
  }
276
276
 
@@ -115,7 +115,7 @@ describe(aresCmd + " -cd", function() {
115
115
 
116
116
  describe(aresCmd + " -sd", function() {
117
117
  it("Print switch logging daemon", function(done) {
118
- if (options.profile === "tv") {
118
+ if (options.profile === "tv" || options.profile === "apollo") {
119
119
  pending(options.skipTxt);
120
120
  }
121
121
  exec(cmd + ` -sd ${targetLogDaemon}`, function(error, stdout, stderr) {
@@ -37,5 +37,22 @@
37
37
  "webappinfo": ["appinfo.json"],
38
38
  "packageinfo": ["packageinfo.json"]
39
39
  }
40
+ },
41
+ "apollo": {
42
+ "list": [
43
+ "ID Project Type Description",
44
+ "------------- --------------- ------------------------------------------",
45
+ "webapp Web App (default) web app for Apollo",
46
+ "hosted_webapp Web App hosted web app for Apollo",
47
+ "webappinfo Web App Info appinfo.json for web app",
48
+ "js_service JS Service js service for Apollo",
49
+ "jsserviceinfo JS Service Info services.json, package.json for JS service",
50
+ "icon Icon app icon files [80x80]"
51
+ ],
52
+ "template": {
53
+ "webapp": "webapp",
54
+ "jsservice": "js_service",
55
+ "webappinfo": ["appinfo.json"]
56
+ }
40
57
  }
41
- }
58
+ }
@@ -29,5 +29,22 @@
29
29
  "ares-server Run a local web server",
30
30
  "ares-setup-device Add or modify the information of the devices to use"
31
31
  ]
32
+ },
33
+ "apollo": {
34
+ "list": [
35
+ "ares-config Configure webOS CLI",
36
+ "ares-device Display the device information",
37
+ "ares-generate Generate files for a webOS app or service",
38
+ "ares-inspect Enable Web Inspector or Node's Inspector",
39
+ "ares-install Install or remove the app on the device",
40
+ "ares-launch Launch or close the app",
41
+ "ares-log Show or save logs of webOS apps and services",
42
+ "ares-package Create or analyze a package containing a webOS app or service",
43
+ "ares-pull Pull the file from the device",
44
+ "ares-push Push the file to the device",
45
+ "ares-server Run a local web server",
46
+ "ares-setup-device Add or modify the information of the devices to use",
47
+ "ares-shell Open a device terminal or run a command"
48
+ ]
32
49
  }
33
50
  }
Binary file