diff --git a/lib/SLUB/LZA/SIPBuilderBagIt.pm b/lib/SLUB/LZA/SIPBuilderBagIt.pm index 4ac5d00cd3715790679878ac78cba3b9d2797943..a382b65cca913e91a24afd45729ba625bba6a630 100644 --- a/lib/SLUB/LZA/SIPBuilderBagIt.pm +++ b/lib/SLUB/LZA/SIPBuilderBagIt.pm @@ -334,7 +334,17 @@ sub create_slub_bagit($bagPath,$refAddBagInfo){ return 1; } -sub buildBagWithCopyOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$dataPath,$metaPath){ +sub __buildBag { + my $ppn = shift; + my $noppn = shift; + my $rightsFilePath = shift; + my $aRefAddMetaFile = shift; + my $refAddBagInfo = shift; + my $bagPath = shift; + my $metaPath = shift; + + # create meta dir + SLUB::LZA::SIPBuilderBagIt::createDir($metaPath); my @addMetaFile = @{ $aRefAddMetaFile }; my @addBagInfo = @{ $refAddBagInfo }; my $marc21; @@ -343,15 +353,7 @@ sub buildBagWithCopyOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMeta if ($ppn) { $marc21 = get_marc21_from_catalogue($ppn); } - # create bag dir - SLUB::LZA::SIPBuilderBagIt::createDir($bagPath); - # create data dir - SLUB::LZA::SIPBuilderBagIt::createDir($dataPath); - # copy payload files to data - print_scalar_data("", "INFO: copying original data...", "", "white"); - dircopy($ieDirectory, $dataPath) || die ("Error coping $ieDirectory to $dataPath"); - # create meta dir - SLUB::LZA::SIPBuilderBagIt::createDir($metaPath); + # copy not payload files to meta SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $metaPath, $rightsFilePath, \@addMetaFile, $marc21); # add metadata for bag-info.txt @@ -361,65 +363,38 @@ sub buildBagWithCopyOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMeta # create slub bagit print_scalar_data("", "INFO: building SIP...", "", "white"); SLUB::LZA::SIPBuilderBagIt::create_slub_bagit($bagPath, \@addBagInfo); + return 1; +} +sub buildBagWithCopyOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$dataPath,$metaPath){ + # create bag dir + SLUB::LZA::SIPBuilderBagIt::createDir($bagPath); + # create data dir + SLUB::LZA::SIPBuilderBagIt::createDir($dataPath); + # copy payload files to data + print_scalar_data("", "INFO: copying original data...", "", "white"); + dircopy($ieDirectory, $dataPath) || die ("Error coping $ieDirectory to $dataPath"); + __buildBag($ppn,$noppn,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$metaPath); return 1; } sub buildBagWithMoveOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$dataPath,$metaPath){ - my @addMetaFile = @{ $aRefAddMetaFile }; - my @addBagInfo = @{ $refAddBagInfo }; - my $marc21; - - # get descriptive metadata from catalog - if ($ppn) { - $marc21 = get_marc21_from_catalogue($ppn); - } # create bag dir SLUB::LZA::SIPBuilderBagIt::createDir($bagPath); # move payloads to data dir (which is automatically renamed from IE Directory) print_scalar_data("", "INFO: moving original data...", "", "white"); dirmove($ieDirectory, $dataPath) || die ("Error moving $ieDirectory to $dataPath"); - # create meta dir - SLUB::LZA::SIPBuilderBagIt::createDir($metaPath); - # copy not payload files to meta - SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $metaPath, $rightsFilePath, \@addMetaFile, $marc21); - # add metadata for bag-info.txt - add_metadata(\@addBagInfo, $ppn, $noppn, $marc21); - # metadata warnings - SLUB::LZA::SIPBuilderBagIt::checkForTitle(\@addBagInfo); - # create slub bagit - print_scalar_data("", "INFO: building SIP...", "", "white"); - SLUB::LZA::SIPBuilderBagIt::create_slub_bagit($bagPath, \@addBagInfo); - + __buildBag($ppn,$noppn,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$metaPath); return 1; } sub buildBagWithReplaceOption($ppn,$noppn,$ieDirectory,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$dataPath,$metaPath){ - my @addMetaFile = @{ $aRefAddMetaFile }; - my @addBagInfo = @{ $refAddBagInfo }; - my $marc21; - - # get descriptive metadata from catalog - if ($ppn) { - $marc21 = get_marc21_from_catalogue($ppn); - } # create bag dir SLUB::LZA::SIPBuilderBagIt::createDir($bagPath); # move payloads to data dir (which is automatically renamed from IE Directory) print_scalar_data("", "INFO: moving original data...", "", "white"); dirmove($ieDirectory, $dataPath) || die ("Error moving $ieDirectory to $dataPath"); - # create meta dir - SLUB::LZA::SIPBuilderBagIt::createDir($metaPath); - # copy not payload files to meta - SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $metaPath, $rightsFilePath, \@addMetaFile, $marc21); - # add metadata for bag-info.txt - add_metadata(\@addBagInfo, $ppn, $noppn, $marc21); - # metadata warnings - SLUB::LZA::SIPBuilderBagIt::checkForTitle(\@addBagInfo); - # create slub bagit - print_scalar_data("", "INFO: building SIP...", "", "white"); - SLUB::LZA::SIPBuilderBagIt::create_slub_bagit($bagPath, \@addBagInfo); - + __buildBag($ppn,$noppn,$rightsFilePath,$aRefAddMetaFile,$refAddBagInfo,$bagPath,$metaPath); return 1; } @@ -436,4 +411,4 @@ sub checkForTitle($key_hash_list_aref){ } return 1; } -1; \ No newline at end of file +1;