Changeset 29685

Show
Ignore:
Timestamp:
14.01.2015 11:12:49 (4 years ago)
Author:
jts21
Message:

Added more params to gs-mkservlet, and tidied up param parsing

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/package-kits/scripts/gs-mkservlet.pl

    r29684 r29685  
    1212 
    1313my $delete = 0; 
    14 my $file = "/usr/share/greenstone/web/WEB-INF/servlets.xml"; 
    15 my $description = ""; 
    16 my $class = "org.greenstone.gsdl3.LibraryServlet"; 
    17 my ($name, $site, $interface); 
     14my %params = ( 
     15    'file'          => "/usr/share/greenstone/web/WEB-INF/servlets.xml", 
     16    'name'          => undef, 
     17    'description'   => "", 
     18    'class'         => "org.greenstone.gsdl3.LibraryServlet", 
     19    'library'       => undef, 
     20    'site'          => undef, 
     21    'interface'     => undef, 
     22    'receptionist'  => "DefaultReceptionist", 
     23    'default_lang'  => "en", 
     24); 
    1825 
    1926while (@ARGV) { 
    2027    for (shift) { 
    21         if (/^-delete$/) { 
    22             $delete = 1; 
    23         } elsif (/^-file$/) { 
    24             ($file = shift) or die "Expected -file <file>\n"; 
    25         } elsif (/^-name$/) { 
    26             ($name = shift) or die "Expected -name <name>\n"; 
    27         } elsif (/^-desc\(ription\)?$/) { 
    28             ($description = shift) or die "Expected -desc <description>\n"; 
    29         } elsif (/^-class$/) { 
    30             ($class = shift) or die "Expected -class <class>\n"; 
    31         } elsif (/^-site$/) { 
    32             ($site = shift) or die "Expected -site <site>\n"; 
    33         } elsif (/^-interface$/) { 
    34             ($interface = shift) or die "Expected -interface <interface>\n"; 
    35         } else { 
    36             die "Unknown flag '$_'\n"; 
     28        if (s/^-//) { 
     29            if (/^delete$/) { 
     30                $delete = 1; 
     31                last; 
     32            } elsif (exists $params{$_}) { 
     33                ($params{$_} = shift) or die "Expected -$_ <$_>\n"; 
     34                last; 
     35            } 
    3736        } 
     37        die "Unknown flag '$_'\n"; 
    3838    } 
    3939} 
    4040 
    4141if ($delete) { 
    42     my $servlets = read_xml $file; 
     42    my $servlets = read_xml $params{file}; 
    4343 
    4444    my $deleted = 0; 
     
    4646    my $servlet_array = $servlets->get ("servlet"); 
    4747    if (ref $servlet_array eq 'ARRAY') { 
    48         my @array = grep { $_->get ("servlet-name") ne $name } @$servlet_array; 
     48        my @array = grep { $_->get ("servlet-name") ne $params{name} } @$servlet_array; 
    4949        $deleted = (scalar @array < scalar @$servlet_array); 
    5050        $servlets->set ("servlet" => \@array); 
    51     } elsif ($servlet_array->get ("servlet-name") eq $name) { 
     51    } elsif ($servlet_array->get ("servlet-name") eq $params{name}) { 
    5252        $servlets->delete ("servlet"); 
    5353        $deleted = 1; 
     
    5656    die "Servlet not found\n" unless $deleted; 
    5757     
    58     write_xml ($servlets, $file); 
     58    write_xml ($servlets, $params{file}); 
    5959} else { 
    60     (defined $name and defined $site and defined $interface) or die "Requires name, site, interface\n"; 
     60    (defined $params{name} and defined $params{site} and defined $params{interface}) or die "Requires name, site, interface\n"; 
    6161 
    62     Greenstone::Site->new ($site)->exists or die "Site '$site' does not exist\n"; 
    63     Greenstone::Interface->new ($interface)->exists or die "Interface '$interface' does not exist\n"; 
     62    Greenstone::Site->new ($params{site})->exists or die "Site '$params{site}' does not exist\n"; 
     63    Greenstone::Interface->new ($params{interface})->exists or die "Interface '$params{interface}' does not exist\n"; 
    6464 
    65     my $servlets = read_xml $file; 
     65    my $servlets = read_xml $params{file}; 
    6666 
    6767    my $servlet_array = $servlets->get ("servlet"); 
     
    7070    } 
    7171    for my $servlet (@$servlet_array) { 
    72         $servlet->get ("servlet-name") eq $name and die "A servlet already exists with that name\n"; 
     72        $servlet->get ("servlet-name") eq $params{name} and die "A servlet already exists with that name\n"; 
    7373        my $servlet_params = $servlet->get ("init-param"); 
    7474        unless (ref $servlet_params eq 'ARRAY') { 
     
    8585            } 
    8686        } 
    87         $servlet_site eq $site and $servlet_interface eq $interface and 
     87        $servlet_site eq $params{site} and $servlet_interface eq $params{interface} and 
    8888            die "A servlet already exists with that combination of site and interface\n"; 
    8989    } 
     
    101101        Hash::Ordered->new ( 
    102102            'servlet' => Hash::Ordered->new ( 
    103                 'servlet-name' => $name, 
    104                 'description'  => $description, 
    105                 'servlet-class'=> $class, 
     103                'servlet-name' => $params{name}, 
     104                'description'  => $params{description}, 
     105                'servlet-class'=> $params{class}, 
    106106                'init-param'   => [ 
    107                     init_param ('site_name', $site), 
    108                     init_param ('interface_name', $interface), 
     107                    init_param ('library_name', 
     108                        (defined $params{library} ? $params{library} : $params{name} )), 
     109                    init_param ('site_name', $params{site}), 
     110                    init_param ('interface_name', $params{interface}), 
     111                    init_param ('receptionist_class', $params{receptionist}), 
     112                    init_param ('default_lang', $params{default_lang}), 
    109113                ], 
    110114            ), 
    111115        ), 
    112         $file, 
     116        $params{file}, 
    113117        '>>' 
    114118    );