Skip to content

Conversation

@CalvinAllen
Copy link
Contributor

Summary

  • Add interactive platform selection to init command
  • Support non-interactive modes: --all-platforms, --current-platform-only, --platforms <list>
  • Add platform management: --add-platform, --remove-platform, --show-platforms
  • Create smart wrapper scripts that detect OS/architecture
  • Add .rnr/config.yaml to track configured platforms

New modules:

  • platform.rs: Platform detection and definitions with sizes
  • rnr_config.rs: .rnr/config.yaml management

Binary sizes by platform:

Platform Size
Linux x86_64 760 KB
macOS x86_64 662 KB
macOS ARM64 608 KB
Windows x86_64 584 KB
Windows ARM64 528 KB

Closes #10
Closes #15

Test plan

  • cargo test - 26 tests pass (including new platform/config tests)
  • cargo clippy - no warnings
  • Manual testing of all init options
  • E2E integration tests for init command added to workflow

Add interactive platform selection to the init command, allowing users
to choose which platforms to support. This helps keep repo size small
by only including needed binaries.

Features:
- Interactive multi-select with pre-selected current platform
- Non-interactive modes: --all-platforms, --current-platform-only
- Explicit platform list: --platforms linux-amd64,macos-arm64
- Platform management: --add-platform, --remove-platform
- Show configured platforms: --show-platforms

New modules:
- platform.rs: Platform detection and definitions
- rnr_config.rs: .rnr/config.yaml management

Smart wrapper scripts detect OS/architecture and provide helpful errors
when a platform is not configured.

Closes #10
@CalvinAllen CalvinAllen merged commit 02eb6b2 into main Jan 9, 2026
17 checks passed
@CalvinAllen CalvinAllen deleted the feat/cli/init-command branch January 9, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

feat(build): wrapper script generation feat(cli): implement init command

2 participants