@geastack/cli 0.1.6 → 0.1.8

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/README.md CHANGED
@@ -47,7 +47,7 @@ flowchart TD
47
47
  install --> setup["Next: npx gea setup"]
48
48
 
49
49
  auto["Automation flags"] -.-> starter
50
- auto --> autoEmpty["--starter empty --yes"]
50
+ auto --> autoEmpty["--starter blank --yes"]
51
51
  auto --> autoExample["--starter example --example watch"]
52
52
  ```
53
53
 
@@ -157,6 +157,6 @@ First implementation is in place:
157
157
  - npm-resolved embedded board builds for ESP32 and RP2350;
158
158
  - `flash`, `monitor`, WiFi OTA, and BLE OTA through `@geastack/targets`;
159
159
  - `list` and `inspect` helpers;
160
- - `create-geastack` with a bundled counter starter, an empty starter, and a
160
+ - `create-geastack` with a bundled counter starter, a blank application, and a
161
161
  GitHub-backed rich example flow for web, embedded, GeaOS, iOS, macOS, and Android apps,
162
162
  all with `.gea/boards.json`.
@@ -69,7 +69,7 @@ Automation can skip prompts:
69
69
 
70
70
  ```sh
71
71
  npx @geastack/create-geastack my-app --starter counter
72
- npx @geastack/create-geastack my-app --starter empty --yes
72
+ npx @geastack/create-geastack my-app --starter blank --yes
73
73
  npx @geastack/create-geastack my-app --starter example --example watch
74
74
  npx @geastack/create-geastack my-ios-app --starter example --example ios-native-showcase
75
75
  npx gea build --target ios --mode simulator
package/docs/SPEC.md CHANGED
@@ -120,7 +120,7 @@ or optional dependency is missing.
120
120
  Scaffolds a new app folder with:
121
121
 
122
122
  - `package.json` containing a `gea` manifest;
123
- - a bundled counter starter, an empty starter, or a selected GitHub example;
123
+ - a bundled counter starter, a blank application, or a selected GitHub example;
124
124
  - `index.tsx` or `index.ts`;
125
125
  - `tsconfig.json`;
126
126
  - `vite.config.ts`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geastack/cli",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "description": "Command-line front door for GeaStack apps, targets, and local toolchains.",
6
6
  "publishConfig": {
@@ -22,9 +22,10 @@ export async function runCreateGeastack(argv, io = {}) {
22
22
  const stdout = io.stdout || console.log
23
23
  const env = io.env || process.env
24
24
  const cwd = io.cwd || process.cwd()
25
+ const commandName = io.commandName || 'create-geastack'
25
26
 
26
27
  if (flag(parsed, 'help') || parsed.positionals[0] === 'help') {
27
- stdout(usage())
28
+ stdout(usage(commandName))
28
29
  return 0
29
30
  }
30
31
 
@@ -105,7 +106,7 @@ export async function runCreateGeastack(argv, io = {}) {
105
106
  stdout(`Created ${displayName} at ${targetDir}`)
106
107
  if (starter.kind === 'bundled') stdout(`Starter: ${starter.starter.name}`)
107
108
  else if (starter.kind === 'example') stdout(`Example: fetched ${starter.example.name}`)
108
- else stdout('Starter: empty app')
109
+ else stdout('Starter: blank application')
109
110
  if (installDependencies) stdout(`Next: cd ${targetDir} && npx gea setup`)
110
111
  else stdout(`Next: cd ${targetDir} && npm install && npx gea setup`)
111
112
  return 0
@@ -133,10 +134,10 @@ async function resolveStarter(ctx, parsed, io) {
133
134
  return { kind: 'bundled', starter }
134
135
  }
135
136
  if (mode !== 'example') {
136
- fail(`Unknown starter '${mode}'. Expected counter, empty, or example.`, ExitCode.usage)
137
+ fail(`Unknown starter '${mode}'. Expected counter, blank, or example.`, ExitCode.usage)
137
138
  }
138
139
  if (examples.length === 0) {
139
- fail('No GitHub examples are available. Use --starter counter or --starter empty.', ExitCode.usage)
140
+ fail('No GitHub examples are available. Use --starter counter or --starter blank.', ExitCode.usage)
140
141
  }
141
142
 
142
143
  const requestedExample = option(parsed, 'example') || option(parsed, 'from-example') || ''
@@ -448,19 +449,28 @@ function ensureJson(filePath, create) {
448
449
  if (!exists(filePath)) writeJson(filePath, create())
449
450
  }
450
451
 
451
- function usage() {
452
+ function usage(commandName = 'create-geastack') {
452
453
  return `Usage:
453
- create-geastack <name> [--dir <path>] [--id <app-id>] [--name <display-name>]
454
+ ${commandName} <name>
455
+
456
+ Run without options for guided setup. The CLI asks what you want to build and
457
+ derives the source layout, targets, and runtime configuration from your choice.
454
458
 
455
459
  Options:
456
- --starter counter|empty|example
460
+ --starter counter|blank|example
457
461
  --example <example-id>
462
+ --no-install
463
+
464
+ Automation options:
465
+ --dir <path>
466
+ --id <app-id>
467
+ --name <display-name>
458
468
  --examples-repo <git-url-or-local-path>
459
469
  --examples-ref <git-ref>
460
470
  --targets web,esp32,rp2350,geaos,macos,ios,android
461
471
  --core-dependency <specifier>
462
472
  --cli-dependency <specifier>
463
- --install / --no-install
473
+ --install
464
474
  --dry-run
465
475
  --yes
466
476
  --force
package/src/gea.mjs CHANGED
@@ -40,7 +40,7 @@ export async function runGea(argv, io = {}) {
40
40
  if (command === 'create') {
41
41
  const createArgs = argv.slice(1)
42
42
  if (option(parsed, 'install') === undefined) createArgs.push('--install')
43
- return runCreateGeastack(createArgs, io)
43
+ return runCreateGeastack(createArgs, { ...io, commandName: 'gea create' })
44
44
  }
45
45
  if (!command || command === 'help' || flag(parsed, 'help')) {
46
46
  stdout(usage())