Skip to content
Snippets Groups Projects

SLUB SIP Builder

Description

A CLI tool to create a valid BagIt SIP for SLUBArchiv. As a user, you have three options copy move or replace to create your SIP. These options are based on payload files, which would be saved in data directory of your bag. NOTE: use option copy if you are not sure how to restore your payload files, when something goes wrong!

Operating Systems

  • Windows 10 (NOTE: check if UTF-8 flag set at Systemadministration/TimeAndRegion/Region/Administration/AreaPattern, if you want to use such characters as äöüÄÖÜß)
  • Debian 10

Requirements

  • Perl version 5.28 or higher, as all necessary modules required
  • Module Archive::BagIt::Base 0.065 or higher

Three ways to install a module

  • with cpan cpan Archive::BagIt
  • with cpanm cpanm Archive::BagIt (NOTE: cpan App::cpanminus must be installed). To force installation run cpanm -i -f Archive::BagIt.
  • manual as downloaded package
    1. Download for example Archive-BagIt-0.065.tar.gz from metacpan Archive::BagIt
    2. Extract it with tar zxf Archive-BagIt-0.065.tar.gz and go to project dir with cd in Archive-BagIt-0.065
    3. Run perl Makefile.pl
    4. (d)gmake
    5. (d)gmake test
    6. (d)gmake install
    7. with cpanm Archive::BagIt test for version. Result will be something like Archive::BagIt is up to date (0.065).

Module deinstallation

  1. cpan App::cpanminus must be installed.
  2. Run cpanm --uninstall Archive::BagIt

Documentation

Explanation

Usage
perl -I lib/ bin/slubsipbuilderbagit.pl -help
Result
Usage:
    slubsipbuilderbagit.pl [options]

    Options: -help brief help message -man full documentation

            -save_option=<option>           payload files save as <copy>, <move>, <replace>, the <copy> option should be prefered
            -IE_directory=<IE dir>          existing IE directory (absolute path!)
            -SIP_output_path=<target dir>   where to put the SIP dir (absolute path!)
            -ppn=<ppn>|-noppn=<noppn>       SWB-PPN or any identifier (uses minimalistic MODS)

            -SIP_version=<version>          mandatory, needs for identification of SIP format, supported <v2020.1>
            -external_workflow=<workflow>   mandatory, should be uniqe workflow name
            -external_id=<id>               mandatory, should be uniqe ID (i.e. a catalog ID), reuse an ID only when updating existing AIP
            -external_ISIL=<isil>           optional, ISIL number of library
            -external_conservation_flag     optional, if set no other "original" still exists
            -external_value_descr=<text>    mandatory, the reason why to archive
            -rights_version=<version>       mandatory, SLUB law managment specification, supported <1.0>

            -rights_xml=<file>              mandatory, path to SLUB rights xml file(absolute path!)
            -add_meta_file=<file>           optional, can be repeated, additional meta files(absolute path!)
            -add_key_value=<"key:value">    optional, can be repeated, additional key value pairs for bag-info.txt

Options:
    -help   Print a brief help message and exits.
Full documentation with examples
perl -I lib/ bin/slubsipbuilderbagit.pl -man
Result
  • MUST: Write command in one line.
EXAMPLES
  Copy    (minimalistic)
    perl -I lib/ bin/slubsipbuilderbagit.pl --save_option=copy
    --IE_directory=/IE/git/SLUB_SIP_Builder/export_dir_kitodo/bagit/test2
    --SIP_output_path=/output_sips --ppn=457035137 --SIP_version=v2020.1
    --external_id=10008 --external_workflow=kitodo --external_ISIL=DE-14
    --external_value_descr="Gesetzlicher Auftrag" --rights_version=1.0
    --rights_xml=/metadata/rights/Fallbeispiel-02.xml

  Copy
    perl -I lib/ bin/slubsipbuilderbagit.pl --save_option=copy
    --IE_directory=/IE/git/SLUB_SIP_Builder/export_dir_kitodo/bagit/test2
    --SIP_output_path=/output_sips --ppn=457035137 --SIP_version=v2020.1
    --external_id=10008 --external_workflow=kitodo --external_ISIL=DE-14
    --external_value_descr="Gesetzlicher Auftrag" --rights_version=1.0
    --rights_xml=/metadata/rights/Fallbeispiel-01.xml
    --add_meta_file=/metadata/lido.xml --add_meta_file=/metadata/mods.xml
    --add_key_value="Author:Lew Nikolajewitsch Tolstoi"
    --add_key_value="Titel:Krieg und Frieden" --add_key_value="Genre:Roman"

  Replace (minimalistic)
    NOT RECOMMENDED! IF FAILS, "IE" MUST BE MANUAL RESTORED TO THE PREVIOUS
    STATE!!!

    perl -I lib/ bin/slubsipbuilderbagit.pl --save_option=replace
    --IE_directory=/IE/SLUB_SIP_Builder/export_dir_kitodo/bagit/test2
    --ppn=457035137 --SIP_version=v2020.1 --external_id=10008
    --external_workflow=kitodo --external_ISIL=DE-14
    --external_value_descr="Gesetzlicher Auftrag" --rights_version=1.0
    --rights_xml=/metadata/rights/Fallbeispiel-01.xml

  Move    (minimalistic)
    NOT RECOMMENDED! IF FAILS, "IE" MUST BE MANUAL RESTORED TO THE PREVIOUS
    STATE!!!

    perl -I lib/ bin/slubsipbuilderbagit.pl --save_option=move
    --IE_directory=/IE/git/SLUB_SIP_Builder/export_dir_kitodo/bagit/test2
    --SIP_output_path=/output_sips --ppn=457035137 --SIP_version=v2020.1
    --external_id=10008 --external_workflow=kitodo --external_ISIL=DE-14
    --external_value_descr="Gesetzlicher Auftrag" --rights_version=1.0
    --rights_xml=/metadata/rights/Fallbeispiel-03.xml
Tests
  • Start scipt in project directory to run all tests properly.
  • NOTE: while running tests path tmp/bagit will be created.
perl -I lib/ t/slubsipbuilderbagit.t