Skip to content

feat: flat-dir build and manifest.json for extract/build round-trip #2

Description

@acscpt

Summary

Make it possible to extract a disc image, edit the files, and rebuild the image without needing a mirrored directory tree or manually maintaining metadata.

Use case and motivation

Today, extracting with --inf and then rebuilding requires the files to be organised in a directory tree that mirrors the disc layout (e.g. T/, $/). This is awkward for simple edits. The .inf sidecars already carry all the routing information, so a flat directory of files and sidecars should be enough to rebuild.

When extracting without --inf, there is currently no way to preserve load/exec/lock addresses for a later rebuild - those are lost and have to be specified manually.

Proposed behaviour

Flat-dir build: beebtools build should accept a flat directory of files with .inf sidecars and route each file to the correct disc location automatically, without requiring a mirrored subdirectory structure.

Manifest on extract: beebtools extract -a should write a manifest.json at the output root capturing the disc title, boot option, format, and - when --inf is not used - the load/exec/lock addresses of every file. beebtools build should read this manifest when no .inf sidecars are present, making a clean round-trip possible without any sidecars at all.

Both modes should work for DFS (.ssd/.dsd) and ADFS (.adf/.adl) images.

References

Metadata

Metadata

Assignees

Labels

backlogFor future considerationcliCommand-line interfacedisc:adfsADFS-specificdisc:dfsDFS-specificenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions