Skip to content

fix: recognize oliver wrap subcommand in parseArgs (#115) - #116

Merged
drawmeanelephant merged 1 commit into
mainfrom
fix/wrap-subcommand-115
Aug 21, 2026
Merged

drawmeanelephant merged 1 commit into
mainfrom
fix/wrap-subcommand-115

Conversation

@drawmeanelephant

@drawmeanelephant drawmeanelephant commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Closes #115

parseArgs in src/main.zig:200 handled render/serialize/scale/menu/meta/plan/manifest but not wrap, so

oliver wrap --template /tmp/t.html --meta-json /tmp/m.json --assets-root ./assets/ --body /tmp/b.html
# → usage, exit 1 (should wrap)

failed with error.Usage even though Command.wrap (src/main.zig:52) and all --template/--meta-json/--assets-root/--body flag handling existed.

Fix: Add

else if (std.mem.eql(u8, arg, "wrap")) { if (command != null) return error.Usage; command = .wrap; }

alongside meta/plan in the subcommand dispatch. Existing wrap validation (saw_wrap_* + .wrap => branch) and wrapDispatch already expected .wrap; only the token was missing.

Verification:

  • zig buildoliver wrap now wraps (html-escaped meta + literal body/assets)
  • zig build test --summary all → 453/453 pass (317+18+7+91+19+1)
  • dup/conflicting subcommands and extra flags correctly return error.Usage (exit 1)
  • manual repro: oliver wrap --template /tmp/t.html --meta-json /tmp/m.json --assets-root ./assets/ --body /tmp/b.html exit 0, title/body substituted

parseArgs handled render/serialize/scale/menu/meta/plan/manifest
but not wrap, so 'oliver wrap --template ...' returned error.Usage
even though Command.wrap and all wrap flags existed.

Add 'else if (std.mem.eql(u8, arg, "wrap"))' alongside meta/plan
so the subcommand sets command=.wrap. The existing validation and
dispatch already expected .wrap; only the token was missing.

Repro: oliver wrap --template /tmp/t.html --meta-json /tmp/m.json
           --assets-root ./assets/ --body /tmp/b.html → usage (exit 1)
Now wraps correctly (html-escaped meta + literal assets/body) and
rejects duplicate/conflicting subcommands like other commands.

Closes #115
@drawmeanelephant
drawmeanelephant merged commit 06dd640 into main Aug 21, 2026
3 checks passed
@drawmeanelephant
drawmeanelephant deleted the fix/wrap-subcommand-115 branch August 21, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: oliver wrap subcommand not recognized (missing in parseArgs)

1 participant