Select Git revision
ansible.cfg
search.pm 4.55 KiB
package SLUB::LZA::Rosetta::TA::Command::search;
use strict;
use warnings;
use feature qw(say);
use SLUB::LZA::Rosetta::TA -command;
sub abstract {"searches Rosetta based Archival Information System";}
my $description=<<"DESCR";
Searches a Rosetta-based AIS for descriptive oder source metadata on behalf of the Technical Analyst.
Returns SRU-response including dc-records. Only the first 10 matches will be presented by default.
Examples:
* Is this dc identifier in Archiv?
$0 count -d SLUB:LZA:Kitodo:kitodo:422766
* Which IE PID has this dc identifier?
$0 search -d SLUB:LZA:Kitodo:kitodo:422766
* Which IE PID are public domain?
$0 search -s publicdomain
* Which IE PID are copyrighted?
$0 search -s copyrighted
* Which IEs were modified in 2021-05-31?
$0 search -m 2021-05-31
Which IEs have at least one invalid file?
$0 search --with-invalid-files
* Which IEs with mkv-files are in archive?
$0 search --with-format=fmt/569
* Which IEs have at least one file without virus check?
$0 search --with-missed-viruscheck
DESCR
sub description {
"$description"
}
sub opt_spec {
return(
["verbose|v" => "enable verbose output"],
["datemode" => hidden => {one_of => [
["creationdate|c=s" => "search based on creationdate string"],
["modificationdate|m=s" => "search based on modificationdate string"]
] } ],
[ "descriptive|d=s", "search descriptive metadata (dc identifier)"],
[ "source|s=s", "search source metadata"],
["ie|i=s" => "search a specific IE"],
["maxrecords=i", "set maxrecords, default is 10"],
["startrecord=i", "set startrecord, default is 1"],
["format" => hidden => {one_of => [
["with-format=s" => "with pronom format id"],
# unsupported by Rosetta <= 7.0
#["without-format=s" => "without pronom format id"],
] } ],
["validation" => hidden => {one_of => [
["with-valid-files" => "with valid files"],
["with-invalid-files" => "with at least one invalid file"],
] } ],
["viruscheck" => hidden => {one_of => [
["with-passed-viruschecks" => "with passed virus checks"],
["with-missed-viruschecks" => "with missed virus checks"],
["with-failed-viruschecks" => "with failed virus checks"],
]}],
);
}
sub validate_args {
my ($self, $opt, $args) = @_;
# no args allowed but options!
$self->usage_error("No args allowed") if @$args;
}