version 1.15, 2000/12/13 21:43:18
|
version 1.18, 2000/12/21 14:38:31
|
Line 152 elsif ($mode eq "status") {
|
Line 152 elsif ($mode eq "status") {
|
} |
} |
elsif ($mode eq "update") { |
elsif ($mode eq "update") { |
} |
} |
|
elsif ($mode eq "configinstall") { |
|
@directories=&determine_directory_structure; |
|
$a=&make_files_configinstall_segment(\@directories); |
|
print $a; |
|
$a=&make_files_configpermissions_segment(\@directories); |
|
print $a; |
|
} |
elsif ($mode eq "install") { |
elsif ($mode eq "install") { |
@directories=&determine_directory_structure; |
@directories=&determine_directory_structure; |
$a=&make_directory_install_segment(\@directories); |
$a=&make_directory_install_segment(\@directories); |
Line 174 sub make_file_list {
|
Line 181 sub make_file_list {
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
foreach my $d (@$dirs) { |
foreach my $d (@$dirs) { |
# set other values |
# set other values |
|
$description.=<<END |
|
BinaryRoot/$d |
|
END |
my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'}; |
my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'}; |
$dirdescription="(" . $dirdescription . ")" if $dirdescription; |
$dirdescription="(" . $dirdescription . ")" if $dirdescription; |
# find files that are contained in this directory |
# find files that are contained in this directory |
Line 459 END
|
Line 469 END
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
my ($owner,$group)=split(/\:/,$devchown); |
my $own=$devchown; $own=~s/\:/\,/; |
my $own=$devchown; $own=~s/\:/\,/; |
$description.=<<END; |
$description.=<<END; |
\tinstall -m $devchmod -d \$(TARGET)/$d |
\tinstall -o $owner -g $group -m $devchmod -d \$(TARGET)/$d |
END |
END |
} |
} |
$description.=<<END; |
$description.=<<END; |
Line 532 END
|
Line 543 END
|
my $rot=$filesfull[$i]; |
my $rot=$filesfull[$i]; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
# $description.=<<END if $category ne 'symbolic link'; |
# $description.=<<END if $category ne 'symbolic link'; |
#\tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
#\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
#END |
#END |
} |
} |
} |
} |
Line 581 END
|
Line 592 END
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
my $rot=$filesfull[$i]; |
my $rot=$filesfull[$i]; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
|
my ($owner,$group)=split(/\:/,$devchown); |
if ($category ne 'conf') { |
if ($category ne 'conf') { |
$description.=<<END if $category ne 'symbolic link'; |
$description.=<<END if $category ne 'symbolic link'; |
\tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
\tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
END |
|
} |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------ Installation commands to install configuration files (and make backups) |
|
sub make_files_configinstall_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
configfiles: |
|
END |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
foreach my $d (@$dirs) { |
|
# set other values |
|
my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'}; |
|
$dirdescription="(" . $dirdescription . ")" if $dirdescription; |
|
# find files that are contained in this directory |
|
my @files; |
|
my @filesfull; |
|
foreach my $f (@allfiles) { |
|
if ($f=~/^$d\/([^\/]+)$/) { |
|
push @files,$1; |
|
push @filesfull,$f; |
|
} |
|
} |
|
# render starting HTML formatting elements |
|
if (@files) { |
|
$description.=<<END; |
|
\t# $d $dirdescription |
|
END |
|
} |
|
if (@files) { |
|
foreach my $i (0..$#files) { |
|
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
|
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
|
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
my $rot=$filesfull[$i]; |
|
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
|
my ($owner,$group)=split(/\:/,$devchown); |
|
if ($category eq 'conf') { |
|
$description.=<<END; |
|
\tinstall -b -S `date +'.\%Y\%m\%d\%H\%M\%S'` -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot |
|
END |
|
} |
|
} |
|
} |
|
} |
|
$description.=<<END; |
|
|
|
END |
|
return $description; |
|
} |
|
|
|
# ------ Commands to enforce configuration file permissions |
|
sub make_files_configpermissions_segment { |
|
my ($dirs)=@_; |
|
my $description=<<END; |
|
configpermissions: |
|
END |
|
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
|
foreach my $d (@$dirs) { |
|
# set other values |
|
my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'}; |
|
$dirdescription="(" . $dirdescription . ")" if $dirdescription; |
|
# find files that are contained in this directory |
|
my @files; |
|
my @filesfull; |
|
foreach my $f (@allfiles) { |
|
if ($f=~/^$d\/([^\/]+)$/) { |
|
push @files,$1; |
|
push @filesfull,$f; |
|
} |
|
} |
|
# render starting HTML formatting elements |
|
if (@files) { |
|
$description.=<<END; |
|
\t# $d $dirdescription |
|
END |
|
} |
|
if (@files) { |
|
foreach my $i (0..$#files) { |
|
my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'}; |
|
my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'}; |
|
my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'}; |
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
|
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
|
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
|
my $rot=$filesfull[$i]; |
|
$rot=~s/[^\/]+$/\./ if $rot=~/\*/; |
|
my ($owner,$group)=split(/\:/,$devchown); |
|
if ($category eq 'conf') { |
|
$description.=<<END; |
|
\tchmod $devchmod \$(TARGET)/$rot |
|
\tchown $devchown \$(TARGET)/$rot |
END |
END |
} |
} |
} |
} |
Line 601 sub make_links_install_segment {
|
Line 716 sub make_links_install_segment {
|
my $description=<<END; |
my $description=<<END; |
links: |
links: |
END |
END |
|
chop $description; |
|
my $description2; |
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
my @allfiles=keys %{$info{'LOCATION'}{$distribution}}; |
foreach my $d (@$dirs) { |
foreach my $d (@$dirs) { |
# find files that are contained in this directory |
# find files that are contained in this directory |
Line 621 END
|
Line 738 END
|
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'}; |
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'}; |
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'}; |
$description.=<<END if $category eq 'symbolic link'; |
if ($category eq 'symbolic link') { |
|
$description.=" \$(TARGET)/$filesfull[$i]"; |
|
$description2.=<<END; |
|
\$(TARGET)/$filesfull[$i]: |
\tln -s /$linkto \$(TARGET)/$filesfull[$i] |
\tln -s /$linkto \$(TARGET)/$filesfull[$i] |
|
|
END |
END |
|
} |
} |
} |
} |
} |
} |
} |
$description.=<<END; |
$description.=<<END; |
|
|
END |
END |
|
$description.=$description2; |
return $description; |
return $description; |
} |
} |
|
|