diff --git a/deploy_checkit_tiff/add_dnx_mappings/README.txt b/deploy_checkit_tiff/add_dnx_mappings/README.txt index d5841958d31083f5d542f84fc7ce8f671f23226a..66b6d9e26a9f85a8544969390c8930c86281dd2c 100644 --- a/deploy_checkit_tiff/add_dnx_mappings/README.txt +++ b/deploy_checkit_tiff/add_dnx_mappings/README.txt @@ -26,8 +26,8 @@ How to automatically add Mappings between extracted Technical Metadata and DNX S == How to run * general invocation -** $# perl -I path/to/perl/modules .add_dnx_mappings.pl "Rosetta-Host.Domain.tld" "Rosetta-User" "Rosetta-Password" "Institution-Name" "Portnumber" - +** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="Rosetta-Host.Domain.tld" --protocol="https" --ui_port="Port-Number" --user="Rosetta-User" --password="Rosetta-Password" --institution="Institution-Name" --plugin_name="Plugin-Name" --classification_group="Classification-Group" + * example invocation: -** $# perl -I ~/perl5/lib/perl5 ./add_dnx_mappings.pl "sdvrosetta-test.slub-dresden.de" "su-user" "Sw0rdF!$h" "SLUB" "8443" +** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="sdvrosetta-test.slub-dresden.de" --protocol="https" --ui_port="8443" --user="su-user" --password="Sw0rdF!$h" --institution="SLUB" --plugin_name="SLUBTechnicalMetadataExtractorCheckItTiffPlugin" --classification_group="Image (Mix)" diff --git a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl b/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl index 75036de098f1c5cc3a348dbcb2ac280d255b8f75..09537b1cc6b40a7f9fa19db92e429dd192cd3391 100644 --- a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl +++ b/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl @@ -19,14 +19,38 @@ no warnings qw(experimental::signatures); use Selenium::Remote::Driver; use Selenium::Chrome; use Term::ANSIColor; # colored print +use Getopt::Long; -my $host = shift; -my $user = shift; -my $passwd = shift; -my $institution = shift; -my $ui_port = shift; +my $host; my $protocol = 'https'; +my $ui_port = "8443"; +my $user; +my $passwd; +my $institution; +my $plugin_name = 'SLUBTechnicalMetadataExtractorCheckItTiffPlugin'; +my $classification_group = 'Image (Mix)'; +my $driver; + +GetOptions( + "rosetta_host=s{1}" => \$host, + "protocol:s{1}" => \$protocol, + "ui_port:s{1}" => \$ui_port, + "user=s{1}" => \$user, + "password=s{1}" => \$passwd, + "institution=s{1}" => \$institution, + "plugin_name:s{1}" => \$plugin_name, + "classification_group:s{1}" => \$classification_group +) or die("Error in command line arguments\n"); +die("invalid/missing argument: --rosetta_host") unless $host; +die("invalid/missing argument: --protocol") unless $protocol; +die("invalid/missing argument: --ui_port") unless $ui_port; +die("invalid/missing argument: --user") unless $user; +die("invalid/missing argument: --password") unless $passwd; +die("invalid/missing argument: --institution") unless $institution; +die("invalid/missing argument: --plugin_name") unless $plugin_name; +die("invalid/missing argument: --classification_group") unless $classification_group; + my %exiftool2dnx = ( "ICC-header:ColorSpaceData" => "icc.colorspacedata", "ICC-header:DeviceModel" => "icc.devicemodel", @@ -62,18 +86,6 @@ my %exiftool2dnx = ( "IFD0:XResolution" => "image.xresolution", # TIFF-Tag 282 XResolution "IFD0:YResolution" => "image.yresolution", # TIFF-Tag 283 YResolution ); -my $plugin_name = "SLUBTechnicalMetadataExtractorCheckItTiffPlugin"; -my $classification_group = "Image (Mix)"; -my $driver = Selenium::Chrome->new(); -$driver->debug_on; -$driver->set_implicit_wait_timeout(1000); -$driver->set_timeout('script', 1000); - -print "Try to mechanize adding DNX, using: - host=$host - user=$user - institution=$institution - \n"; sub login { $driver->get("$protocol://$host:${ui_port}/mng?auth=local"); @@ -185,7 +197,22 @@ sub extractors_add_mapping ($dnx_property, $exiftool_property) { $driver->pause(); } -# login +# startup info +printf colored("Trying to mechanize adding DNX mappings using: + rosetta host = '$host' + ui port = '$ui_port' + user = '$user' + institution = '$institution' + plugin name = '$plugin_name' + classification group = '$classification_group'\n\n", 'bold white'); + +# startup driver +$driver = Selenium::Chrome->new(); +$driver->debug_on; +$driver->set_implicit_wait_timeout(1000); +$driver->set_timeout('script', 1000); + +# Rosetta login printf colored("Step 1 of 7: login \n", 'bold green'); login(); @@ -222,7 +249,9 @@ change_to_local_format_library(); printf colored("Step 7 of 7: logout \n", 'bold green'); logout(); +# stop driver $driver->quit(); $driver->shutdown_binary(); +# stop info printf colored("Finished! \n", 'bold green');