How devpryan7792/kurogane works
KUROGANE compiles declarative appliance recipes into immutable EROFS arcade boards, then supports testing, multi-appliance disk composition, USB flashing, and boot-time appliance launch. The recipe-to-image and CLI dispatch relationships are supported by the README and sampled source; some boot/runtime details are documented but their exact internal wiring was not sampled.
Main entry points: cli.py Kurogane CLI · composer.py Disk Composer · flasher.py Safe Flasher · stages Boot Stages
Components 19
Recipes and Configuration
- Appliance Recipes
recipes - Recipe Schema
src/kurogane/schema.py - YAML Parser
src/kurogane/yaml.py
Image Production
- Kurogane CLI
src/kurogane/cli.py - Cartridge Builder
src/kurogane/builder.py - EROFS Cartridge
- Disk Composer
src/kurogane/composer.py - Bootable Disk Image
Testing and Delivery
- QEMU Runner
src/kurogane/runner.py - QEMU
- Safe Flasher
src/kurogane/flasher.py - USB Device
Boot and Appliance Runtime
- UEFI Boot Menu
src/kurogane/composer.py - Hub Loader
src/kurogane/hub_loader.sh - Initramfs Hook
src/kurogane/initcpio/hooks/cartilage_hub - Boot Stages
stages - Persistent User Data
stages/30-storage.sh - App Launchers
launchers
Other components
- Operator
Connections 19
- Operator → Kurogane CLI: invokes
- Appliance Recipes → YAML Parser: parsed by
- YAML Parser → Recipe Schema: validates against
- Kurogane CLI → Cartridge Builder: build dispatch
- Cartridge Builder → EROFS Cartridge: compiles
- Kurogane CLI → Disk Composer: compose dispatch
- Disk Composer → EROFS Cartridge: reads
- Disk Composer → Bootable Disk Image: assembles
- Kurogane CLI → QEMU Runner: run dispatch
- QEMU Runner → QEMU: launches
- Kurogane CLI → Safe Flasher: flash dispatch
- Safe Flasher → Disk Composer: composes image
- Safe Flasher → USB Device: writes image
- Bootable Disk Image → UEFI Boot Menu: boots through
- UEFI Boot Menu → Hub Loader: selects appliance
- Hub Loader → Initramfs Hook: uses hook
- Initramfs Hook → Boot Stages: starts runtime
- Boot Stages → Persistent User Data: mounts
- Boot Stages → App Launchers: starts apps