root
- app
- doc
- src
- test
- .gitignore
- .hlint.yaml
- CHANGELOG.md
- LICENSE
- README.md
- Setup.hs
- frodo.cabal
- package.yaml
- stack.yaml
- stack.yaml.lock
frodo
Yet another tool to validate BagIt formatted digital content according to RFC8493: The BagIt File Packaging Format (V1.0).
Written in Haskell, because I can™.
Roadmap
Validate packages
- [ ] Validate BagIt packages with SHA1, MD5, SHA256, SHA512
- [ ] Ensure
bagit.txt
,data/
and at least onemanifest-<algorithm>.txt
are present - [ ] Ensure
bagit.txt
conforms with the spec - [ ] Ensure tagmanifest checksums match if present
- [ ] Ensure all files listed in manifests are present
- [ ] Ensure payload checksums match
- [ ] Ensure all payload files are listed in all manifests if
Bagit-Version
is 1.0 - [ ] Quick validate based on
Payload-Oxum
if present - [ ] Attempt to validate incomplete packages (by ignoring missing files)
- [ ] Complete packages using
fetch.txt
- [ ] Normalize filenames before validating
- [ ] Permit other encodings than UTF-8 if specified in
bagit.txt
Create/update packages
- [ ] Create new BagIt package
- [ ] Set metadata tags in
bag-info.txt
- [ ] Update package
- [ ] Warn about problems with filename normalization
Misc
- [ ] Skip files matching a pattern when validating
- [ ] Parse and display tag file entries
- [ ] Update tag file entries