-
Jens Steidl authoredJens Steidl authored
README.md 6.25 KiB
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 runcpanm -i -f Archive::BagIt
. - manual as downloaded package
- Download for example Archive-BagIt-0.065.tar.gz from metacpan Archive::BagIt
- Extract it with
tar zxf Archive-BagIt-0.065.tar.gz
and go to project dir withcd in Archive-BagIt-0.065
- Run
perl Makefile.pl
(d)gmake
(d)gmake test
(d)gmake install
- with
cpanm Archive::BagIt
test for version. Result will be something likeArchive::BagIt is up to date (0.065)
.
Module deinstallation
-
cpan App::cpanminus
must be installed. - Run
cpanm --uninstall Archive::BagIt
Documentation
- RECOMMENDED: Windows 10 perl environment strawberry-perl-5.30.3.1-64bit-portable
- Project based on BagIt 1.0 specification, visit RFC8493
- Some valid Bag examples based on operation system look at
export_dir_kitodo/bagit/lin_*
orexport_dir_kitodo/bagit/win_*
- Specification of creating a SLUB SIP you can find at SLUBArchiv_Produzenten_SIP_Spezifikation.pdf
- For rights coding specification visit SLUBArchiv_Produzenten_Rechteauszeichnung.pdf
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