@webos-tools/cli 3.0.0

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 (177) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +52 -0
  3. package/APIs.js +79 -0
  4. package/CHANGELOG.md +110 -0
  5. package/LICENSE +201 -0
  6. package/README.md +218 -0
  7. package/bin/ares-config.js +199 -0
  8. package/bin/ares-device-info.js +30 -0
  9. package/bin/ares-device.js +219 -0
  10. package/bin/ares-generate.js +270 -0
  11. package/bin/ares-inspect.js +179 -0
  12. package/bin/ares-install.js +223 -0
  13. package/bin/ares-launch.js +318 -0
  14. package/bin/ares-log.js +255 -0
  15. package/bin/ares-novacom.js +223 -0
  16. package/bin/ares-package.js +336 -0
  17. package/bin/ares-pull.js +156 -0
  18. package/bin/ares-push.js +155 -0
  19. package/bin/ares-server.js +174 -0
  20. package/bin/ares-setup-device.js +520 -0
  21. package/bin/ares-shell.js +132 -0
  22. package/bin/ares.js +166 -0
  23. package/files/conf/ares.json +49 -0
  24. package/files/conf/command-service.json +73 -0
  25. package/files/conf/config.json +22 -0
  26. package/files/conf/ipk.json +30 -0
  27. package/files/conf/novacom-devices.json +35 -0
  28. package/files/conf/query/query-app.json +14 -0
  29. package/files/conf/query/query-hosted.json +18 -0
  30. package/files/conf/query/query-package.json +10 -0
  31. package/files/conf/query/query-service.json +6 -0
  32. package/files/conf/sdk.json +8 -0
  33. package/files/conf/template.json +57 -0
  34. package/files/conf/webos_emul +27 -0
  35. package/files/conf-base/env/sdk-ose.json +8 -0
  36. package/files/conf-base/env/sdk-tv.json +8 -0
  37. package/files/conf-base/profile/config-ose.json +21 -0
  38. package/files/conf-base/profile/config-tv.json +22 -0
  39. package/files/conf-base/query/query-app.json +14 -0
  40. package/files/conf-base/query/query-hosted.json +18 -0
  41. package/files/conf-base/query/query-package.json +10 -0
  42. package/files/conf-base/query/query-service.json +6 -0
  43. package/files/conf-base/template-conf/ose-templates.json +67 -0
  44. package/files/conf-base/template-conf/tv-sdk-templates.json +57 -0
  45. package/files/help/ares-config.help +43 -0
  46. package/files/help/ares-device.help +94 -0
  47. package/files/help/ares-generate.help +65 -0
  48. package/files/help/ares-inspect.help +70 -0
  49. package/files/help/ares-install.help +90 -0
  50. package/files/help/ares-launch.help +100 -0
  51. package/files/help/ares-log-pmlogd.help +84 -0
  52. package/files/help/ares-log.help +101 -0
  53. package/files/help/ares-novacom.help +68 -0
  54. package/files/help/ares-package.help +101 -0
  55. package/files/help/ares-pull.help +38 -0
  56. package/files/help/ares-push.help +38 -0
  57. package/files/help/ares-server.help +39 -0
  58. package/files/help/ares-setup-device.help +75 -0
  59. package/files/help/ares-shell.help +42 -0
  60. package/files/help/ares.help +47 -0
  61. package/files/help/readme.help +23 -0
  62. package/files/schema/ApplicationDescription.schema +319 -0
  63. package/files/schema/NovacomDevices.schema +61 -0
  64. package/files/templates/ose-sdk-templates/appinfo/appinfo.json +10 -0
  65. package/files/templates/ose-sdk-templates/bootplate-web/index.html +88 -0
  66. package/files/templates/ose-sdk-templates/hosted-webapp/index.html +14 -0
  67. package/files/templates/ose-sdk-templates/icon/icon.png +0 -0
  68. package/files/templates/ose-sdk-templates/js-service/helloclient.js +31 -0
  69. package/files/templates/ose-sdk-templates/js-service/helloworld_webos_service.js +188 -0
  70. package/files/templates/ose-sdk-templates/qml-app/main.qml +68 -0
  71. package/files/templates/ose-sdk-templates/qmlappinfo/appinfo.json +10 -0
  72. package/files/templates/ose-sdk-templates/serviceinfo/package.json +11 -0
  73. package/files/templates/ose-sdk-templates/serviceinfo/services.json +8 -0
  74. package/files/templates/tv-sdk-templates/appinfo/appinfo.json +10 -0
  75. package/files/templates/tv-sdk-templates/bootplate-web/index.html +58 -0
  76. package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.4/LICENSE-2.0.txt +202 -0
  77. package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.4/webOSTV-dev.js +1 -0
  78. package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.4/webOSTV.js +1 -0
  79. package/files/templates/tv-sdk-templates/hosted-webapp/index.html +14 -0
  80. package/files/templates/tv-sdk-templates/js-service/helloworld_service.js +37 -0
  81. package/files/templates/tv-sdk-templates/packageinfo/packageinfo.json +4 -0
  82. package/files/templates/tv-sdk-templates/serviceinfo/package.json +11 -0
  83. package/files/templates/tv-sdk-templates/serviceinfo/services.json +8 -0
  84. package/files/templates/tv-sdk-templates/webicon/icon.png +0 -0
  85. package/files/templates/tv-sdk-templates/webicon/largeIcon.png +0 -0
  86. package/lib/base/ares.html +40 -0
  87. package/lib/base/cli-appdata.js +289 -0
  88. package/lib/base/cli-control.js +44 -0
  89. package/lib/base/common-tools.js +29 -0
  90. package/lib/base/error-handler.js +265 -0
  91. package/lib/base/file-watcher.js +155 -0
  92. package/lib/base/help-format.js +147 -0
  93. package/lib/base/luna.js +178 -0
  94. package/lib/base/novacom.js +1191 -0
  95. package/lib/base/sdkenv.js +59 -0
  96. package/lib/base/server.js +137 -0
  97. package/lib/base/setup-device.js +324 -0
  98. package/lib/base/version-tools.js +79 -0
  99. package/lib/com.sdk.ares.hostedapp.ipk +0 -0
  100. package/lib/device.js +1419 -0
  101. package/lib/generator.js +377 -0
  102. package/lib/inspect.js +494 -0
  103. package/lib/install.js +463 -0
  104. package/lib/launch.js +605 -0
  105. package/lib/log.js +584 -0
  106. package/lib/package.js +2129 -0
  107. package/lib/pull.js +231 -0
  108. package/lib/pusher.js +210 -0
  109. package/lib/session.js +74 -0
  110. package/lib/shell.js +193 -0
  111. package/lib/tar-filter-pack.js +62 -0
  112. package/lib/util/copy.js +31 -0
  113. package/lib/util/createFileName.js +40 -0
  114. package/lib/util/eof.js +30 -0
  115. package/lib/util/json.js +63 -0
  116. package/lib/util/merge.js +14 -0
  117. package/lib/util/objclone.js +40 -0
  118. package/lib/util/spinner.js +37 -0
  119. package/npm-shrinkwrap.json +85 -0
  120. package/package.json +98 -0
  121. package/spec/helpers/reporter.js +65 -0
  122. package/spec/jsSpecs/apiTest/generator.spec.js +372 -0
  123. package/spec/jsSpecs/apiTest/inspector.spec.js +89 -0
  124. package/spec/jsSpecs/apiTest/installer.spec.js +67 -0
  125. package/spec/jsSpecs/apiTest/launcher.spec.js +150 -0
  126. package/spec/jsSpecs/apiTest/packager.spec.js +194 -0
  127. package/spec/jsSpecs/apiTest/puller.spec.js +101 -0
  128. package/spec/jsSpecs/apiTest/pusher.spec.js +103 -0
  129. package/spec/jsSpecs/apiTest/server.spec.js +115 -0
  130. package/spec/jsSpecs/apiTest/setupDevice.spec.js +93 -0
  131. package/spec/jsSpecs/apiTest/shell.spec.js +49 -0
  132. package/spec/jsSpecs/ares-config.spec.js +78 -0
  133. package/spec/jsSpecs/ares-device.spec.js +443 -0
  134. package/spec/jsSpecs/ares-generate.spec.js +397 -0
  135. package/spec/jsSpecs/ares-inspect.spec.js +252 -0
  136. package/spec/jsSpecs/ares-install.spec.js +150 -0
  137. package/spec/jsSpecs/ares-launch.spec.js +301 -0
  138. package/spec/jsSpecs/ares-log.spec.js +824 -0
  139. package/spec/jsSpecs/ares-novacom.spec.js +149 -0
  140. package/spec/jsSpecs/ares-package.spec.js +1211 -0
  141. package/spec/jsSpecs/ares-pull.spec.js +157 -0
  142. package/spec/jsSpecs/ares-push.spec.js +146 -0
  143. package/spec/jsSpecs/ares-server.spec.js +160 -0
  144. package/spec/jsSpecs/ares-setup-device.spec.js +281 -0
  145. package/spec/jsSpecs/ares-shell.spec.js +220 -0
  146. package/spec/jsSpecs/ares.spec.js +83 -0
  147. package/spec/jsSpecs/common-spec.js +169 -0
  148. package/spec/support/jasmine.json +22 -0
  149. package/spec/tempFiles/com.jasmine.native.app_0.0.1_arm.ipk +0 -0
  150. package/spec/tempFiles/com.jasmine.native.app_0.0.1_x86.ipk +0 -0
  151. package/spec/tempFiles/com.jasmine.web.app_0.0.1_all.ipk +0 -0
  152. package/spec/tempFiles/com.logtest.web.app_1.0.0_all.ipk +0 -0
  153. package/spec/tempFiles/copyFiles/helloFile.txt +1 -0
  154. package/spec/tempFiles/copyFiles/testFile.txt +1 -0
  155. package/spec/tempFiles/ipks/com.sample.echo_0.0.1_all.ipk +0 -0
  156. package/spec/tempFiles/ipks/com.web.app_1.0.0_all.ipk +0 -0
  157. package/spec/tempFiles/nativeApp/auto/pkg_arm64/GLES2 +0 -0
  158. package/spec/tempFiles/nativeApp/auto/pkg_arm64/appinfo.json +9 -0
  159. package/spec/tempFiles/nativeApp/auto/pkg_arm64/icon.png +0 -0
  160. package/spec/tempFiles/nativeApp/auto/pkg_arm64/largeIcon.png +0 -0
  161. package/spec/tempFiles/nativeApp/ose/pkg_arm/Hello +0 -0
  162. package/spec/tempFiles/nativeApp/ose/pkg_arm/appinfo.json +9 -0
  163. package/spec/tempFiles/nativeApp/ose/pkg_arm/icon.png +0 -0
  164. package/spec/tempFiles/nativeApp/ose/pkg_arm/largeIcon.png +0 -0
  165. package/spec/tempFiles/nativeApp/ose/pkg_arm/package.properties +2 -0
  166. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/Hello +0 -0
  167. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/appinfo.json +9 -0
  168. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/icon.png +0 -0
  169. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/largeIcon.png +0 -0
  170. package/spec/tempFiles/nativeApp/rsi/pkg_x86/GLES2 +0 -0
  171. package/spec/tempFiles/nativeApp/rsi/pkg_x86/appinfo.json +9 -0
  172. package/spec/tempFiles/nativeApp/rsi/pkg_x86/icon.png +0 -0
  173. package/spec/tempFiles/nativeApp/rsi/pkg_x86/largeIcon.png +0 -0
  174. package/spec/tempFiles/sign/sign.crt +32 -0
  175. package/spec/tempFiles/sign/signPriv.key +52 -0
  176. package/spec/test_data/ares-generate.json +41 -0
  177. package/spec/test_data/ares.json +33 -0
package/bin/ares.js ADDED
@@ -0,0 +1,166 @@
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
+ Table = require('easy-table'),
11
+ fs = require('fs'),
12
+ nopt = require('nopt'),
13
+ log = require('npmlog'),
14
+ path = require('path'),
15
+ commonTools = require('./../lib/base/common-tools');
16
+
17
+ const cliControl = commonTools.cliControl,
18
+ version = commonTools.version,
19
+ help = commonTools.help,
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
+ if (process.argv.length === 2) {
32
+ process.argv.splice(2, 0, '--help');
33
+ }
34
+
35
+ const knownOpts = {
36
+ "help": Boolean,
37
+ "list": Boolean,
38
+ "version": Boolean,
39
+ "level": ['silly', 'verbose', 'info', 'http', 'warn', 'error']
40
+ };
41
+
42
+ const shortHands = {
43
+ "h": ["--help"],
44
+ "l": ["--list"],
45
+ "V": ["--version"],
46
+ "v": ["--level", "verbose"]
47
+ };
48
+
49
+ const argv = nopt(knownOpts, shortHands, process.argv, 2),
50
+ profile = appdata.getConfig(true).profile;
51
+
52
+ log.heading = processName;
53
+ log.level = argv.level || 'warn';
54
+ log.verbose("argv", argv);
55
+
56
+ /**
57
+ * For consistent of "$command -v", argv is used.
58
+ * By nopt, argv is parsed and set key-value in argv object.
59
+ * If -v or --level option is input with command, it is set key-value in argv.
60
+ * After it is deleted, If remained key is only one in argv object
61
+ * (If any other are remained, it's mean another options is input)
62
+ * and there is no remaining after parsing the input command by nopt
63
+ * (If any other are remained, it's mean another parameters ares input),
64
+ * each command of webOS CLI print help message with log message.
65
+ */
66
+ if (argv.level) {
67
+ delete argv.level;
68
+ if (argv.argv.remain.length === 0 && (Object.keys(argv)).length === 1) {
69
+ argv.help = true;
70
+ }
71
+ }
72
+
73
+ let op;
74
+ if (argv.list) {
75
+ op = commandList;
76
+ } else if (argv.version) {
77
+ version.showVersionAndExit();
78
+ } else if (argv.help) {
79
+ showUsage();
80
+ cliControl.end();
81
+ } else {
82
+ op = display;
83
+ }
84
+
85
+ if (op) {
86
+ version.checkNodeVersion(function() {
87
+ async.series([
88
+ op.bind(this)
89
+ ],finish);
90
+ });
91
+ }
92
+
93
+ function commandList() {
94
+ log.info("commandList()");
95
+ const table = new Table();
96
+ try {
97
+ const commandsList = JSON.parse(fs.readFileSync(path.join(__dirname, '../', 'files', 'conf', 'ares.json')));
98
+ Object.keys(commandsList).forEach(function(cmd) {
99
+ if (commandsList[cmd].profile && !commandsList[cmd].profile.includes(profile)) {
100
+ return;
101
+ } else if (!fs.existsSync(path.join(__dirname, cmd + '.js'))) {
102
+ return;
103
+ }
104
+ table.cell('CMD', cmd);
105
+ table.cell('Description', commandsList[cmd].description);
106
+ table.newRow();
107
+ });
108
+ finish(null, {msg: table.print().trim()});
109
+ } catch (err) {
110
+ finish(errHndl.getErrMsg("INVALID_JSON_FORMAT"));
111
+ }
112
+ }
113
+
114
+ function display (next) {
115
+ log.info("display()");
116
+ let found = false;
117
+ try{
118
+ const commandsList = JSON.parse(fs.readFileSync(path.join(__dirname, '../', 'files', 'conf', 'ares.json')));
119
+ for (const arg in argv) {
120
+ if (Object.hasOwnProperty.call(commandsList, 'ares-'+ arg) && fs.existsSync(path.join(__dirname, 'ares-'+ arg + '.js'))) {
121
+ if (commandsList['ares-'+ arg].profile && !commandsList['ares-'+ arg].profile.includes(profile)) {
122
+ next(errHndl.getErrMsg("NOT_SUPPORT_COMMOND", profile));
123
+ } else {
124
+ help.display('ares-'+arg, appdata.getConfig(true).profile);
125
+ found = true;
126
+ }
127
+ }
128
+
129
+ if (!found) {
130
+ next(errHndl.getErrMsg("INVALID_COMMAND"));
131
+ } else {
132
+ next();
133
+ }
134
+ }
135
+ } catch (err) {
136
+ next(errHndl.getErrMsg("INVALID_JSON_FORMAT"));
137
+ }
138
+ }
139
+
140
+ function showUsage () {
141
+ help.display(processName, appdata.getConfig(true).profile);
142
+ }
143
+
144
+ function finish(err, value) {
145
+ log.info("finish()");
146
+ if (err) {
147
+ // handle err from getErrMsg()
148
+ if (Array.isArray(err) && err.length > 0) {
149
+ for (const index in err) {
150
+ log.error(err[index].heading, err[index].message);
151
+ }
152
+ log.verbose(err[0].stack);
153
+ } else {
154
+ // handle general err (string & object)
155
+ log.error(err.toString());
156
+ log.verbose(err.stack);
157
+ }
158
+ cliControl.end(-1);
159
+ } else {
160
+ log.verbose("finish()", "value:", value);
161
+ if (value && value.msg) {
162
+ console.log(value.msg);
163
+ }
164
+ cliControl.end();
165
+ }
166
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "ares-config": {
3
+ "description": "Configure webOS CLI"
4
+ },
5
+ "ares-device": {
6
+ "description": "Display the device information"
7
+ },
8
+ "ares-generate": {
9
+ "description": "Generate files for a webOS app or service"
10
+ },
11
+ "ares-inspect": {
12
+ "description": "Enable Web Inspector or Node's Inspector"
13
+ },
14
+ "ares-install": {
15
+ "description": "Install or remove the app on the device"
16
+ },
17
+ "ares-launch": {
18
+ "description": "Launch or close the app"
19
+ },
20
+ "ares-log": {
21
+ "profile": ["ose"],
22
+ "description": "Show or save logs of webOS apps and services"
23
+ },
24
+ "ares-novacom": {
25
+ "profile": ["tv"],
26
+ "description": "Command Line Tool to control the device"
27
+ },
28
+ "ares-package": {
29
+ "description": "Create or analyze a package containing a webOS app or service"
30
+ },
31
+ "ares-pull": {
32
+ "profile": ["ose"],
33
+ "description": "Pull the file from the device"
34
+ },
35
+ "ares-push": {
36
+ "profile": ["ose"],
37
+ "description": "Push the file to the device"
38
+ },
39
+ "ares-server": {
40
+ "description": "Run a local web server"
41
+ },
42
+ "ares-setup-device": {
43
+ "description": "Add or modify the information of the devices to use"
44
+ },
45
+ "ares-shell": {
46
+ "profile": ["ose"],
47
+ "description": "Open a device terminal or run a command"
48
+ }
49
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "lunaSend": "/usr/bin/luna-send-pub",
3
+ "lunaAddr": {
4
+ "install": {
5
+ "service": "com.webos.appInstallService",
6
+ "folder": "dev",
7
+ "method": "install",
8
+ "returnValue": "return.details.state"
9
+ },
10
+ "remove": {
11
+ "service": "com.webos.appInstallService",
12
+ "folder": "dev",
13
+ "method": "remove",
14
+ "returnValue": "return.details.state"
15
+ },
16
+ "list": {
17
+ "service": "com.webos.applicationManager",
18
+ "folder": "dev",
19
+ "method": "listApps",
20
+ "returnValue": "return.apps"
21
+ },
22
+ "launch": {
23
+ "service": "com.webos.applicationManager",
24
+ "method": "launch",
25
+ "returnValue": "return.returnValue"
26
+ },
27
+ "terminate": {
28
+ "service": "com.webos.applicationManager",
29
+ "folder": "dev",
30
+ "method": "closeByAppId",
31
+ "returnValue": "return.returnValue"
32
+ },
33
+ "running": {
34
+ "service": "com.webos.applicationManager",
35
+ "folder": "dev",
36
+ "method": "running",
37
+ "returnValue": "return.running"
38
+ },
39
+ "deviceInfo": {
40
+ "service": "com.webos.service.systemservice",
41
+ "folder": "deviceInfo",
42
+ "method": "query",
43
+ "returnValue": "return.returnValue"
44
+ },
45
+ "osInfo": {
46
+ "service": "com.webos.service.systemservice",
47
+ "folder": "osInfo",
48
+ "method": "query",
49
+ "returnValue": "return.returnValue"
50
+ },
51
+ "softwareInfo": {
52
+ "service": "com.webos.service.systemservice",
53
+ "folder": "softwareInfo",
54
+ "method": "query",
55
+ "returnValue": "return.returnValue"
56
+ },
57
+ "getSessionList": {
58
+ "service": "com.webos.service.sessionmanager",
59
+ "method": "getSessionList",
60
+ "returnValue": "return.returnValue"
61
+ },
62
+ "captureCompositorOutput": {
63
+ "service": "com.webos.surfacemanager",
64
+ "method": "captureCompositorOutput",
65
+ "returnValue": "return.returnValue"
66
+ },
67
+ "deviceInfoSystem": {
68
+ "service": "com.webos.service.tv.systemproperty",
69
+ "method": "getSystemInfo",
70
+ "returnValue": "return.returnValue"
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "profile": "tv",
3
+ "config": "tv_sdk",
4
+ "defaultAppInfo": {
5
+ "id": "com.domain.app",
6
+ "type": "web",
7
+ "title": "new app",
8
+ "version": "0.0.1",
9
+ "main": {
10
+ "web": "index.html",
11
+ "native": "executable"
12
+ }
13
+ },
14
+ "logFilePath": "/media/developer/log/devlog",
15
+ "install": {
16
+ "tempDirForIpk": "/media/developer/temp",
17
+ "changeTempDir": true,
18
+ "removeIpkAfterInst": true
19
+ },
20
+ "dataDir": ".webos/tv",
21
+ "simulatorConfig": "simulator-config.json"
22
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "tmpPath": "webOSPackage-",
3
+ "ipkMetaFiles": ["control.tar.gz", "data.tar.gz"],
4
+ "webOSMetaFiles": ["control", "package", "app", "service"],
5
+ "webOSMetaFileRootPath": "usr/",
6
+ "control": {
7
+ "heading": "< Package Information >",
8
+ "path": ".",
9
+ "fileName": "control",
10
+ "info": ["Package", "Version", "Architecture", "Installed-Size"]
11
+ },
12
+ "package": {
13
+ "path": "usr/palm/packages",
14
+ "fileName": ["packageinfo.json"],
15
+ "info": ["app", "services"]
16
+ },
17
+ "app": {
18
+ "heading": "< Application Information >",
19
+ "path": "usr/palm/applications",
20
+ "fileName": ["appinfo.json"],
21
+ "info": ["id", "version", "type", "main"]
22
+ },
23
+ "service": {
24
+ "heading": "< Service Information >",
25
+ "path": "usr/palm/services",
26
+ "fileName": ["services.json", "package.json"],
27
+ "info": ["id", "version", "main", "services"],
28
+ "services": "name"
29
+ }
30
+ }
@@ -0,0 +1,35 @@
1
+ [
2
+ {
3
+ "order":"0",
4
+ "default": true,
5
+ "profile": "ose",
6
+ "name": "emulator",
7
+ "description": "LG webOS Emulator",
8
+ "host": "127.0.0.1",
9
+ "port": 6622,
10
+ "username": "developer",
11
+ "privateKey": {
12
+ "openSsh": "webos_emul"
13
+ },
14
+ "files":"sftp",
15
+ "noPortForwarding":false,
16
+ "indelible": true
17
+ },
18
+ {
19
+ "order":"0",
20
+ "default": true,
21
+ "profile": "tv",
22
+ "name": "emulator",
23
+ "type": "starfish",
24
+ "description": "LG webOS TV Emulator",
25
+ "host": "127.0.0.1",
26
+ "port": 6622,
27
+ "username": "developer",
28
+ "privateKey": {
29
+ "openSsh": "webos_emul"
30
+ },
31
+ "files":"sftp",
32
+ "noPortForwarding":false,
33
+ "indelible": true
34
+ }
35
+ ]
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": {
3
+ "query": "app id",
4
+ "default": "com.domain.app"
5
+ },
6
+ "title": {
7
+ "query": "title",
8
+ "default": "new app"
9
+ },
10
+ "version": {
11
+ "query": "version",
12
+ "default": "1.0.0"
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": {
3
+ "query": "app id",
4
+ "default": "com.domain.app"
5
+ },
6
+ "title": {
7
+ "query": "title",
8
+ "default": "new app"
9
+ },
10
+ "version": {
11
+ "query": "version",
12
+ "default": "1.0.0"
13
+ },
14
+ "url": {
15
+ "query":"url",
16
+ "default":"http://developer.lge.com/"
17
+ }
18
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": {
3
+ "query": "package id",
4
+ "default": "com.domain"
5
+ },
6
+ "version": {
7
+ "query": "version",
8
+ "default": "1.0.0"
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "id": {
3
+ "query": "service id",
4
+ "default": "com.domain.app.service"
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "SDKPATH_ENV_NAME": "LG_WEBOS_TV_SDK_HOME",
3
+ "BROWSER_PATH_IN_SDK": {
4
+ "win32": "/IDE/chromium/chrome.exe",
5
+ "darwin": "/IDE/chromium/Chromium.app",
6
+ "linux": "/IDE/chromium/chrome"
7
+ }
8
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "basic": {
3
+ "type": "webapp",
4
+ "path": "$cli-root/files/templates/tv-sdk-templates/bootplate-web",
5
+ "description": "basic web app for webOS TV",
6
+ "metadata": {
7
+ "id": "webappinfo"
8
+ },
9
+ "deps": [
10
+ "webicon"
11
+ ],
12
+ "default": true
13
+ },
14
+ "hosted_webapp": {
15
+ "type": "webapp",
16
+ "path": "$cli-root/files/templates/tv-sdk-templates/hosted-webapp",
17
+ "description": "hosted web app for webOS TV",
18
+ "metadata": {
19
+ "id": "webappinfo"
20
+ },
21
+ "deps": [
22
+ "webicon"
23
+ ]
24
+ },
25
+ "webappinfo": {
26
+ "type": "webappinfo",
27
+ "path": "$cli-root/files/templates/tv-sdk-templates/appinfo/appinfo.json",
28
+ "description": "appinfo.json for web app"
29
+ },
30
+ "js_service": {
31
+ "type": "jsservice",
32
+ "path": "$cli-root/files/templates/tv-sdk-templates/js-service",
33
+ "description": "js service for webOS TV",
34
+ "metadata": {
35
+ "id": "jsserviceinfo"
36
+ }
37
+ },
38
+ "jsserviceinfo": {
39
+ "type": "jsserviceinfo",
40
+ "path": [
41
+ "$cli-root/files/templates/tv-sdk-templates/serviceinfo/services.json",
42
+ "$cli-root/files/templates/tv-sdk-templates/serviceinfo/package.json"
43
+ ],
44
+ "description": "services.json, package.json for JS service"
45
+ },
46
+ "webicon": {
47
+ "type": "icon",
48
+ "path": "$cli-root/files/templates/tv-sdk-templates/webicon",
49
+ "description": "web app icon files [80x80, 130x130]",
50
+ "hide": true
51
+ },
52
+ "packageinfo": {
53
+ "type": "packageinfo",
54
+ "path": "$cli-root/files/templates/tv-sdk-templates/packageinfo/packageinfo.json",
55
+ "description": "packageinfo.json for webOS package"
56
+ }
57
+ }
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEA0KX2ywyIejqJ5Chc5+p9MbYCR5re8KKlkK/V6n6KcSfMInpr
3
+ lvlJcMtkOxKVXYQ1dQmX407s9biRDZNjlb1VRmFs3FW0PM6p5E5yZzTuHcwHxXeY
4
+ ajg7Ooqp5RjUH/DUegFAiDXI5pGvQn4eOGAiosJBO3fqP/NFlqJIDV9XF8+GKISW
5
+ W/GZtVtnLT8fnyuoOMe/MvNz6YUVLbmYp5PASHoEz2BQ7YB6J2dUO/eU6GuWVQM0
6
+ MVjdPtDZjfWjPsSo927UEXj3o4gxfgP0CCiuFlbjw8glLzaH9HYHnyk0MO9cVo+g
7
+ THtyMBjZaMjQlD8jWvE2lQGCMFU9C/ITjYD68QIDAQABAoIBACnoG6B+vO6n0UhF
8
+ Hxvpigmw/9Y38e0tDcn4tyNpFQ9TKfoG0pM5MJn6EACZY+yrgD0olxwtnwRfdKrg
9
+ XpEVvQnsyXubrx7Dd3YGl43JIMZVU35C3hb/gk3oyeTczsY3jcWPeNGi094Thrr5
10
+ L8Ks9GfyUj3KgP8lMmXl5EjjTE/YnnVPxzfRMBLbxF+2ecHguG1tD7XMnSmMtUtm
11
+ VTjDOhqjPDsrsvsuKlAhpNPY2GxC4Ub2Doz5P22lGxZUDoFbKXKD46LUF6X2z3M9
12
+ tMdEnKDqRHhnbNoBRpuPaQXgyp/vl+btBlZKlruKQwTyi4MoRTLMDZjHSWPaaUkj
13
+ 7BNWHY0CgYEA+ysfU8oBBmnr7yonpRTXNn39+ma6hs9cbW1jqsIEiXX6Mo9S3Kai
14
+ Lf/IbEX1PmXWO9vxXXYfTYeG0YrAGYPub2a0U8iAgT/NrC56rUW1xpDztK9axEeN
15
+ zJQEj5FewUoiYVNFgw55GMNCNm+OqVSFtn1XFPqt+CPRXrtq7SAuY2cCgYEA1Klz
16
+ kFU2umKaBHqa+t+zBCJ/TEdENP/71GInb3Xgr7JxD/28FDQs7/uXG6o0lmVsni0T
17
+ /NSM985iMQVYfXgilVRVo3QN3a3gavAFly3uz/9jvYvNzIsy3MXd2AbBC6K1GdkW
18
+ eTUzUe9ba3atnB7XWXlmFFyZZRMcrBaCV5Zzz+cCgYEAuh+xflDiQ5N4f+m4KS/x
19
+ b3McI1O/A6lkL77xLZfK7uZbOt5UpChjZDz4k6uf2dZzVDZffUfMWJKGyH7ObdoD
20
+ ddAg7zlUaPMUAXUL+Zz/4B6ISivr0inIHYLOgmlSU2ARbBfeGgk+magQR/CRQk/d
21
+ KmdlgalmA8zfGRk/WmsPlR8CgYB2wDjb+/mXkr/WiHBKbugUAv96pMEdp2QEcNr8
22
+ jqJs+gPQniuMTKZbS+5RcHX1FaXVne5vXHFrXz/Nh+KmDZOiN3mq0H99rj6G+Ijm
23
+ pquYUlBr48mD0qcQSR1cKElcKfte965o+KAzvKkcFSVU7JPsTrIF5L9zhXyZS+h0
24
+ 6Hq7OQKBgQDIZ72uiKWgeRZEOnnYyjOZsjr5Gv8L8TfUNYcau9y86HuMHi0h5C/3
25
+ r3cnD117BawfjtrnOjj4RQsQmVVnO8nOwmfbRD2F3wXjUjhLUGAMIykDVxETp6ll
26
+ 3vhLce1DDlW9LQxMZoxCNFGVIjF05rXOmLe5y6KwJ5H0xP31koEQyw==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,8 @@
1
+ {
2
+ "SDKPATH_ENV_NAME": "LG_WEBOS_CUSTOM_SDK_HOME",
3
+ "BROWSER_PATH_IN_SDK": {
4
+ "win32": "/IDE/chromium/chrome.exe",
5
+ "darwin": "/IDE/chromium/Chromium.app",
6
+ "linux": "/IDE/chromium/chrome"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "SDKPATH_ENV_NAME": "LG_WEBOS_TV_SDK_HOME",
3
+ "BROWSER_PATH_IN_SDK": {
4
+ "win32": "/IDE/chromium/chrome.exe",
5
+ "darwin": "/IDE/chromium/Chromium.app",
6
+ "linux": "/IDE/chromium/chrome"
7
+ }
8
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "profile": "ose",
3
+ "defaultAppInfo": {
4
+ "id": "com.yourdomain.app",
5
+ "type": "web",
6
+ "title": "new app",
7
+ "version": "1.0.0",
8
+ "main": {
9
+ "web": "index.html",
10
+ "native": "executable"
11
+ }
12
+ },
13
+ "logFilePath": "/media/developer/log/devlog",
14
+ "install": {
15
+ "tempDirForIpk": "/media/developer/temp",
16
+ "changeTempDir": true,
17
+ "removeIpkAfterInst": true
18
+ },
19
+ "dataDir":".webos/ose",
20
+ "logDaemon": "journald"
21
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "profile": "tv",
3
+ "config": "tv_sdk",
4
+ "defaultAppInfo": {
5
+ "id": "com.domain.app",
6
+ "type": "web",
7
+ "title": "new app",
8
+ "version": "0.0.1",
9
+ "main": {
10
+ "web": "index.html",
11
+ "native": "executable"
12
+ }
13
+ },
14
+ "logFilePath": "/media/developer/log/devlog",
15
+ "install": {
16
+ "tempDirForIpk": "/media/developer/temp",
17
+ "changeTempDir": true,
18
+ "removeIpkAfterInst": true
19
+ },
20
+ "dataDir": ".webos/tv",
21
+ "simulatorConfig": "simulator-config.json"
22
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": {
3
+ "query": "app id",
4
+ "default": "com.domain.app"
5
+ },
6
+ "title": {
7
+ "query": "title",
8
+ "default": "new app"
9
+ },
10
+ "version": {
11
+ "query": "version",
12
+ "default": "1.0.0"
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": {
3
+ "query": "app id",
4
+ "default": "com.domain.app"
5
+ },
6
+ "title": {
7
+ "query": "title",
8
+ "default": "new app"
9
+ },
10
+ "version": {
11
+ "query": "version",
12
+ "default": "1.0.0"
13
+ },
14
+ "url": {
15
+ "query":"url",
16
+ "default":"http://developer.lge.com/"
17
+ }
18
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": {
3
+ "query": "package id",
4
+ "default": "com.domain"
5
+ },
6
+ "version": {
7
+ "query": "version",
8
+ "default": "1.0.0"
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "id": {
3
+ "query": "service id",
4
+ "default": "com.domain.app.service"
5
+ }
6
+ }