Changeset 29685 for main


Ignore:
Timestamp:
2015-01-14T11:12:49+13:00 (9 years ago)
Author:
Jeremy Symon
Message:

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

File:
1 edited

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    );
Note: See TracChangeset for help on using the changeset viewer.