@ludeo/cli 1.4.11 → 1.4.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.
package/README.md CHANGED
@@ -114,6 +114,8 @@ ludeo builds upload \
114
114
  - `--request-id`: Optional request ID for tracking
115
115
  - `--no-interactive`: Disable interactive prompts (for CI/CD or scripts)
116
116
  - `--dry-run`: Preview the upload without making any changes
117
+ - `--poll`: After upload completes, poll build status until it leaves pending state
118
+ - `--interval N`: Polling interval in seconds when using `--poll` (default: 10)
117
119
 
118
120
  #### Dry-Run Mode
119
121
  Preview what would be uploaded without making any changes:
@@ -133,7 +135,39 @@ Dry-run will:
133
135
  - Show total file count and size
134
136
  - NOT create any build metadata or upload files
135
137
 
136
- ### 4. Manage Builds
138
+ ### 4. Check Build Status
139
+
140
+ After uploading you can check whether the platform has finished processing a build:
141
+
142
+ ```bash
143
+ # Single check — prints current status and exits
144
+ ludeo builds status --game-id YOUR_GAME_ID --build-id BUILD_ID
145
+
146
+ # Poll until the build leaves the pending state (useful in CI/CD)
147
+ ludeo builds status --game-id YOUR_GAME_ID --build-id BUILD_ID --poll
148
+
149
+ # Poll with a custom interval (default is 10 s)
150
+ ludeo builds status --game-id YOUR_GAME_ID --build-id BUILD_ID --poll --interval 5
151
+ ```
152
+
153
+ `--poll` continues while the status is `pending` and exits as soon as it changes:
154
+ - Exit 0 — status is `ready`, `success`, or `complete`
155
+ - Exit 1 — any other status (e.g. `failed`)
156
+
157
+ You can also trigger polling automatically right after an upload:
158
+
159
+ ```bash
160
+ ludeo builds upload \
161
+ --game-id YOUR_GAME_ID \
162
+ --exec-path game.exe \
163
+ --local-directory ./builds \
164
+ --build-type major \
165
+ --game-version "1.2.3" \
166
+ --sdk-version "2.0.0" \
167
+ --poll
168
+ ```
169
+
170
+ ### 5. Manage Builds
137
171
  ```bash
138
172
  # List your builds
139
173
  ludeo builds list --game-id YOUR_GAME_ID
@@ -148,10 +182,40 @@ ludeo auth status
148
182
  ludeo auth logout
149
183
  ```
150
184
 
185
+ ## Project Config (`ludeo.json`)
186
+
187
+ To avoid repeating the same flags on every command, you can store per-project defaults in a `ludeo.json` file in your project directory (or any ancestor directory up to `$HOME`).
188
+
189
+ Scaffold a template:
190
+ ```bash
191
+ ludeo config init
192
+ ```
193
+
194
+ This creates a `ludeo.json` with all supported fields. Fill in the values you want to persist:
195
+
196
+ ```json
197
+ {
198
+ "game_id": "YOUR_GAME_ID",
199
+ "exec_path": "game.exe",
200
+ "local_directory": "./builds",
201
+ "build_type": "major",
202
+ "sdk_version": "2.0.0"
203
+ }
204
+ ```
205
+
206
+ Once the file is in place, you can upload with just:
207
+ ```bash
208
+ ludeo builds upload --game-version "1.2.3"
209
+ ```
210
+
211
+ Flag values always override the project config, which overrides global defaults. Use `--project-config <path>` to point to a config file in a non-standard location.
212
+
151
213
  ## Features
152
214
 
153
215
  - **Interactive Mode**: Guided wizard for easy build uploads - just run `ludeo builds upload` and follow the prompts
154
216
  - **Easy Upload**: Upload complete game builds with a single command
217
+ - **Build Status Polling**: Check and poll build processing status with `builds status --poll`; also available directly on `builds upload --poll`
218
+ - **Project Config**: Store per-project defaults in `ludeo.json` via `ludeo config init` — no more repeating the same flags
155
219
  - **Large File Support**: Automatically handles large files and multiple files
156
220
  - **Progress Tracking**: Real-time progress updates during uploads
157
221
  - **Dry-Run Mode**: Preview uploads without making changes using `--dry-run`
@@ -173,7 +237,7 @@ npm update -g @ludeo/cli
173
237
  - name: Install Ludeo CLI
174
238
  run: npm install -g @ludeo/cli
175
239
 
176
- - name: Upload Build
240
+ - name: Upload Build and Wait for Processing
177
241
  run: |
178
242
  ludeo auth set-token --access-token ${{ secrets.LUDEO_ACCESS_TOKEN }}
179
243
  ludeo builds upload \
@@ -183,7 +247,30 @@ npm update -g @ludeo/cli
183
247
  --build-creation-type new \
184
248
  --build-type major \
185
249
  --game-version ${{ env.GAME_VERSION }} \
250
+ --sdk-version ${{ env.SDK_VERSION }} \
251
+ --poll
252
+ ```
253
+
254
+ If you prefer to separate the upload and status-check steps:
255
+ ```yaml
256
+ - name: Upload Build
257
+ id: upload
258
+ run: |
259
+ ludeo auth set-token --access-token ${{ secrets.LUDEO_ACCESS_TOKEN }}
260
+ ludeo builds upload \
261
+ --game-id ${{ env.GAME_ID }} \
262
+ --exec-path game.exe \
263
+ --local-directory ./builds \
264
+ --build-type major \
265
+ --game-version ${{ env.GAME_VERSION }} \
186
266
  --sdk-version ${{ env.SDK_VERSION }}
267
+
268
+ - name: Wait for Build to Be Ready
269
+ run: |
270
+ ludeo builds status \
271
+ --game-id ${{ env.GAME_ID }} \
272
+ --build-id ${{ env.BUILD_ID }} \
273
+ --poll --interval 15
187
274
  ```
188
275
 
189
276
  ## Troubleshooting
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cli",
3
- "version": "1.4.11",
3
+ "version": "1.4.13",
4
4
  "description": "Ludeo CLI - Upload game builds and manage content on the Ludeo platform",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -0,0 +1,26 @@
1
+ #!/bin/sh
2
+ # Pre-commit hook: ensures README.md and windows-releases/template/README.md
3
+ # are always generated from docs/README.template.md and never edited directly.
4
+ #
5
+ # Install: make install-hooks
6
+
7
+ README_FILES="README.md windows-releases/template/README.md"
8
+
9
+ # Only run if the template or any generated README is being committed
10
+ TEMPLATE_STAGED=$(git diff --cached --name-only | grep -q "docs/README.template.md" && echo "yes" || echo "no")
11
+ READMES_STAGED=$(git diff --cached --name-only | grep -E "^README\.md$|^windows-releases/template/README\.md$" && echo "yes" || echo "no")
12
+
13
+ if [ "$READMES_STAGED" = "yes" ] && [ "$TEMPLATE_STAGED" = "no" ]; then
14
+ echo "❌ README files cannot be edited directly."
15
+ echo " Edit docs/README.template.md and run 'make readme' to regenerate."
16
+ exit 1
17
+ fi
18
+
19
+ if [ "$TEMPLATE_STAGED" = "yes" ]; then
20
+ # Template is being committed — regenerate and auto-stage the outputs
21
+ node scripts/build-readme.js
22
+ git add $README_FILES
23
+ echo "✅ README files regenerated from template and staged"
24
+ fi
25
+
26
+ exit 0