Ignore:
Timestamp:
2014-12-08T12:19:58+13:00 (9 years ago)
Author:
Jeremy Symon
Message:

Arch package now automatically sets the owner of the web directory to the tomcat user. The functionality is also implemented for the other package managers, but not yet tested.

Location:
main/trunk/package-kits/linux/perllib/Greenstone
Files:
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/package-kits/linux/perllib/Greenstone/Config.pm

    r29536 r29546  
    44use warnings;
    55use utf8;
     6use Greenstone::Helpers;
    67
    78# Formats an array
     
    3132}
    3233
     34# Reads a config file into the config hashmap
     35sub readconf {
     36    my ($self, $conf) = @_;
     37    $self->{config} = {} unless exists $self->{config};
     38    open CONF, '<', $conf
     39        or die "Failed to open '$conf' for reading: $!";
     40    my $var;
     41    while (my $line = <CONF>) {
     42        if (empty $line or comment $line) {
     43            $var = undef;
     44        } elsif (defined $var and $line =~ /^\s/) {
     45            trim $line;
     46            $self->subst ($line);
     47            escape $line;
     48            push @{$self->{config}->{$var}}, $line;
     49        } else {
     50            ($var, my $val) = trim (split ":", $line, 2);
     51            defined $var and defined $val or die "Invalid variable assignment: '$line'";
     52            if (empty $val) {
     53                $self->{config}->{$var} = [];
     54            } else {
     55                $self->subst ($val);
     56                escape $val;
     57                $self->{config}->{$var} = $val;
     58            }
     59        }
     60    }
     61    close CONF;
     62}
     63
    33641;
  • main/trunk/package-kits/linux/perllib/Greenstone/Package.pm

    r29536 r29546  
    88use Greenstone::Helpers;
    99use base 'Exporter';
    10 require Greenstone::Config::Loader;
    1110
    1211use parent 'Greenstone::Config';
     
    5352
    5453    # Classify ourselves as config and load the config
    55     my $self = bless({}, 'Greenstone::Config::Loader');
     54    my $self = bless({}, 'Greenstone::Config');
    5655
    5756    $self->readconf ("global.conf");
    5857    $self->readconf ($distro_conf);
    59     $self->readconf ($package_conf);
    60 
     58   
    6159    die "Distro '$args{distro}' is invalid (does not specify a manager)"
    6260        unless (exists $self->{config}->{MANAGER});
    6361
    6462    my $class = __PACKAGE__ . '::_' . lc $self->{config}->{MANAGER};
    65     eval "require $class; 1" or die "Package manager '$self->{config}->{MANAGER}' does not exist";
     63    eval "require $class; 1" or die "Package manager '$self->{config}->{MANAGER}' does not exist or did not compile";
    6664
    6765    # Reclassify as our implementation
    6866    bless $self, $class;
     67
     68    $self->readconf ($package_conf);
    6969
    7070    $self->{package} = $args{package};
     
    7575    $self->add_sources;
    7676    $self->add_makefile;
     77    $self->add_install;
    7778    $self->add_package;
    7879}
  • main/trunk/package-kits/linux/perllib/Greenstone/Package/_apt.pm

    r29539 r29546  
    1212}
    1313
     14sub write_function {
     15    my ($self, $name, @lines) = @_;
     16    open OUT, '>', "/tmp/$name";
     17    for my $line (@lines) {
     18        print OUT $line, "\n";
     19    }
     20    close OUT;
     21    $self->add ("/tmp/$name", "$self->{output}/$name");
     22}
     23
     24sub add_install {
     25    my $self = shift;
     26    exists $self->{config}->{PRE_INSTALL} and
     27        $self->write_function ("preinst", @{$self->{config}->{PRE_INSTALL}});
     28    exists $self->{config}->{POST_INSTALL} and
     29        $self->write_function ("postinst", @{$self->{config}->{POST_INSTALL}});
     30    exists $self->{config}->{PRE_REMOVE} and
     31        $self->write_function ("prerm", @{$self->{config}->{PRE_REMOVE}});
     32    exists $self->{config}->{POST_REMOVE} and
     33        $self->write_function ("postrm", @{$self->{config}->{POST_REMOVE}});
     34}
     35
    14361;
  • main/trunk/package-kits/linux/perllib/Greenstone/Package/_pacman.pm

    r29536 r29546  
    3838}
    3939
     40sub write_function {
     41    my ($name, $out, @lines) = @_;
     42    print $out $name, "() {\n";
     43    for my $line (@lines) {
     44        print $out "\t", $line, "\n";
     45    }
     46    print $out "}\n\n";
     47}
     48
     49sub add_install {
     50    my $self = shift;
     51    if (exists $self->{config}->{PRE_INSTALL} or
     52        exists $self->{config}->{POST_INSTALL} or
     53        exists $self->{config}->{PRE_REMOVE} or
     54        exists $self->{config}->{POST_REMOVE}) {
     55        my $name = "$self->{config}->{NAME}.install";
     56        open my $INSTALL, '>', "/tmp/$name";
     57        exists $self->{config}->{PRE_INSTALL} and do {
     58            write_function "pre_install", $INSTALL, @{$self->{config}->{PRE_INSTALL}};
     59            write_function "pre_upgrade", $INSTALL, @{$self->{config}->{PRE_INSTALL}};
     60        };
     61        exists $self->{config}->{POST_INSTALL} and do {
     62            write_function "post_install", $INSTALL, @{$self->{config}->{POST_INSTALL}};
     63            write_function "post_upgrade", $INSTALL, @{$self->{config}->{POST_INSTALL}};
     64        };
     65        exists $self->{config}->{PRE_REMOVE} and
     66            write_function "pre_remove", $INSTALL, @{$self->{config}->{PRE_REMOVE}};
     67        exists $self->{config}->{POST_REMOVE} and
     68            write_function "post_remove", $INSTALL, @{$self->{config}->{POST_REMOVE}};
     69        close $INSTALL;
     70        $self->add ("/tmp/$name", "$self->{output}/$name");
     71        $self->{config}->{INSTALL} = "install=$name";
     72    } else {
     73        $self->{config}->{INSTALL} = "";
     74    }
     75}
     76
    40771;
  • main/trunk/package-kits/linux/perllib/Greenstone/Package/_rpm.pm

    r29539 r29546  
    1212}
    1313
     14sub write_function {
     15    my ($name, @lines) = @_;
     16    my $ret = "";
     17    $ret .= "%" . $name . "\n";
     18    for my $line (@lines) {
     19        $ret .= $line . "\n";
     20    }
     21    $ret .= "\n";
     22    return $ret;
     23}
     24
     25sub add_install {
     26    my $self = shift;
     27    $self->{config}->{INSTALL} = "";
     28    exists $self->{config}->{PRE_INSTALL} and
     29        $self->{config}->{INSTALL} .= write_function "pre", @{$self->{config}->{PRE_INSTALL}};
     30    exists $self->{config}->{POST_INSTALL} and
     31        $self->{config}->{INSTALL} .= write_function "post", @{$self->{config}->{POST_INSTALL}};
     32    exists $self->{config}->{PRE_REMOVE} and
     33        $self->{config}->{INSTALL} .= write_function "preun", @{$self->{config}->{PRE_INSTALL}};
     34    exists $self->{config}->{POST_REMOVE} and
     35        $self->{config}->{INSTALL} .= write_function "postun", @{$self->{config}->{POST_INSTALL}};
     36}
     37
    14381;
Note: See TracChangeset for help on using the changeset viewer.