BagIt (for ruby)

Build Status Coverage Status

This is a Ruby library and command line utility for creating BagIt archives based on the BagItspec v0.97.

Supported Features:

  • Bag creation
  • Manifest & tagmanifest generation
  • Generation of tag files bag-info.txt and bagit.txt
  • Fetching remote files (fetch.txt)
  • Bag validation


# gem install bagit validatable

Example: making a bag

require 'bagit'

# make a new bag at base_path
bag = base_path

# make a new file
bag.add_file("samplefile") do |io|
  io.puts "Hello Bag!"

# generate the manifest and tagmanifest files
bag.manifest!(algo: 'sha256')

Example: validating an existing bag

bag = existing_base_path

if bag.valid?
  puts "#{existing_base_path} is valid"
  puts "#{existing_base_path} is not valid"

Console Tool

# create a new bag/add files to existing bag
bagit add -f file1 file2 -t tagfile1 tagfile2 ./path/to/bag 
# validate
bagit validate ./path/to/bag
# for other commands
bagit --help

Copyright © 2009, Francesco Lazzarino.

Current maintainer: Jamie Little.

Initial development sponsored by Florida Center for Library Automation.

See LICENSE.txt for terms.