root/main/trunk/package-kits/linux/perllib/Greenstone/Package/_pacman.pm @ 29546

Revision 29546, 2.2 KB (checked in by jts21, 6 years ago)

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.

Line 
1package Greenstone::Package::_pacman;
2
3use strict;
4use warnings;
5use utf8;
6use parent 'Greenstone::Package';
7use Digest::MD5;
8
9sub replacement_array {
10    my $self = shift;
11    my $array = shift;
12    return join "\n", @{$array};
13}
14
15sub add_md5 {
16    my $self = shift;
17    my $md5 = Digest::MD5->new;
18    for my $source (@_) {
19        open my $MD5FH, '<', "$self->{output}/$source";
20        binmode $MD5FH;
21        $md5->addfile ($MD5FH);
22        push @{$self->{config}->{SOURCE_SUMS}}, $md5->hexdigest;
23        close $MD5FH
24    }
25}
26
27sub add_sources {
28    my $self = shift;
29    $self->SUPER::add_sources;
30    $self->{config}->{SOURCE_SUMS} = [];
31    $self->add_md5 (@{$self->{config}->{SOURCES}});
32}
33
34sub add_makefile {
35    my $self = shift;
36    $self->SUPER::add_makefile;
37    $self->add_md5 ('Makefile');
38}
39
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
771;
Note: See TracBrowser for help on using the browser.