@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 +2 -2
- package/docs/NPX-COMMANDS.md +1 -1
- package/docs/SPEC.md +1 -1
- package/package.json +1 -1
- package/src/create-geastack.mjs +18 -8
- package/src/gea.mjs +1 -1
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
|
|
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,
|
|
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`.
|
package/docs/NPX-COMMANDS.md
CHANGED
|
@@ -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
|
|
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,
|
|
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
package/src/create-geastack.mjs
CHANGED
|
@@ -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:
|
|
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,
|
|
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
|
|
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
|
-
|
|
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|
|
|
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
|
|
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())
|