This seems like an ok way to validate addresses, canonicalize them, and
model various bits of them for use by file handlers and helper scripts.
It seems to handle URNs fine, too.
- adds a constructor which allows configuring db path
- adds pieces(1) and subcommands
- allows for adding an address and linking between 2 addresses
This is still super raw and I'm undecided about various things.
Adds App::MarkFile::check_collisions(). Right now this just bails if
something would be weird. An option to solve interactively is probably
a good idea, but for now this will at least prevent the obvious
foot-shooting case.
Of course it should probably also list the overlapping source paths...
- Moves more stuff into App::MarkFiles.
- Renames each() to each_path() and simplifies the interface from
handing a hashref to the callback to just giving it a path string.
- Adds mark-remove(1) and renames App::MarkFiles::unmark() to remove()