@geastack/cli 0.1.11 → 0.1.13

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 (3) hide show
  1. package/README.md +1 -0
  2. package/package.json +3 -3
  3. package/src/gea.mjs +27 -1
package/README.md CHANGED
@@ -18,6 +18,7 @@ gea dev
18
18
  gea build --target web
19
19
  gea build --target ios
20
20
  gea flash --board amoled --monitor
21
+ gea screenshot board.png --board amoled
21
22
  gea monitor --board amoled
22
23
  gea inspect --json
23
24
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geastack/cli",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "Command-line front door for GeaStack apps, targets, and local toolchains.",
6
6
  "publishConfig": {
@@ -27,8 +27,8 @@
27
27
  "create-geastack": "bin/create-geastack.mjs"
28
28
  },
29
29
  "dependencies": {
30
- "@geastack/core": "0.1.4",
31
- "@geastack/targets": "0.1.5"
30
+ "@geastack/core": "0.1.5",
31
+ "@geastack/targets": "0.1.7"
32
32
  },
33
33
  "scripts": {
34
34
  "check": "node --check bin/gea.mjs && node --check bin/create-geastack.mjs && find src test packages -name '*.mjs' -print0 | xargs -0 -n1 node --check",
package/src/gea.mjs CHANGED
@@ -66,6 +66,8 @@ export async function runGea(argv, io = {}) {
66
66
  return flash(ctx, parsed, rest, { stdout, env })
67
67
  case 'monitor':
68
68
  return monitor(ctx, parsed, rest, { stdout, env })
69
+ case 'screenshot':
70
+ return screenshot(ctx, parsed, rest, { stdout, env })
69
71
  case 'ota':
70
72
  return ota(ctx, parsed, rest, { stdout, env })
71
73
  case 'list':
@@ -271,6 +273,28 @@ function monitor(ctx, parsed, rest, io) {
271
273
  })
272
274
  }
273
275
 
276
+ function screenshot(ctx, parsed, rest, io) {
277
+ const board = option(parsed, 'board', '')
278
+ const target = option(parsed, 'target', '')
279
+ if (!board && !target) fail('screenshot requires --board <alias> or --target <target>.', ExitCode.usage)
280
+
281
+ const output = path.resolve(ctx.cwd, rest[0] || 'screenshot.png')
282
+ const extraArgs = [output]
283
+ const timeout = option(parsed, 'timeout')
284
+ if (timeout !== undefined) extraArgs.push(`--timeout=${timeout}`)
285
+ if (flag(parsed, 'legacy')) extraArgs.push('--legacy')
286
+
287
+ return runBoard(ctx, 'screenshot', parsed, {
288
+ board,
289
+ target,
290
+ extraArgs,
291
+ namedPort: true,
292
+ failureCode: ExitCode.deployFailed,
293
+ stdout: io.stdout,
294
+ env: io.env
295
+ })
296
+ }
297
+
274
298
  function runBoard(ctx, action, parsed, opts) {
275
299
  requirePath(ctx.scripts.board, 'board script')
276
300
  const args = [action]
@@ -278,11 +302,12 @@ function runBoard(ctx, action, parsed, opts) {
278
302
  if (opts.target) args.push(`--target=${opts.target}`)
279
303
  if (opts.appId) args.push(`--app=${opts.appId}`)
280
304
  const port = option(parsed, 'port')
281
- if (port) args.push(String(port))
305
+ if (port) args.push(opts.namedPort ? `--port=${port}` : String(port))
282
306
  if (flag(parsed, 'manual-boot')) args.push('--manual-boot')
283
307
  if (option(parsed, 'reset') === false) args.push('--no-reset')
284
308
  const flashBaud = option(parsed, 'flash-baud')
285
309
  if (flashBaud !== undefined) args.push(`--flash-baud=${flashBaud}`)
310
+ if (opts.extraArgs) args.push(...opts.extraArgs)
286
311
  args.push(...parsed.passthrough)
287
312
  const childEnv = createChildEnv(ctx, opts.env)
288
313
  if (opts.app?.manifest?.ota?.ble === true) childEnv.GEA_EMBEDDED_BLE_OTA = '1'
@@ -450,6 +475,7 @@ function usage() {
450
475
  gea flash --bringup --board <alias> [--monitor] [--port auto]
451
476
  gea monitor --board <alias>
452
477
  gea monitor --target android
478
+ gea screenshot [output.png] --board <alias> [--port auto] [--timeout <seconds>] [--legacy]
453
479
  gea ota [app] --board <alias> [--transport wifi|ble]
454
480
  gea list [apps|targets|boards] [--json]
455
481
  gea inspect [app] [--json]