diff --git a/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl b/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl
index 1c83f89bc76b13fc20bdd65d9ee438c3a8b0038b..d8f4d84139cb65141717b8ee20f504140b751618 100644
--- a/deploy_mediaconch/add_dnx_mappings/add_dnx_mappings.pl
+++ b/deploy_mediaconch/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 = 'SLUBTechnicalMetadataExtractorMediaConchPlugin';
+my $classification_group = 'Video';
+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 %mediainfo2dnx = (
     "mediainfo.track.Audio.BitDepth"                          => "audio.bit_depth",
     "mediainfo.track.Audio.BitRate"                           => "audio.bit_rate",
@@ -136,18 +160,6 @@ my %mediainfo2dnx = (
     "mediainfo.track.Video.transfer_characteristics"          => "video.transfer_characteristics",
     "mediainfo.track.Video.Width"                             => "video.width"
 );
-my $plugin_name = "SLUBTechnicalMetadataExtractorMediaConchPlugin";
-my $classification_group = "Video";
-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");
@@ -254,7 +266,22 @@ sub extractors_add_mapping ($dnx_property, $mediainfo_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();
 
@@ -291,7 +318,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');