--- loncom/build/Attic/parse.pl 2001/01/10 17:00:34 1.22
+++ loncom/build/Attic/parse.pl 2001/01/23 16:12:56 1.26
@@ -152,27 +152,79 @@ elsif ($mode eq "BinaryRoot") {
open OUT,">BinaryRoot/etc/passwd";
print OUT<
+This file is generated dynamically by parse.pl as +part of a status checking process. See http://install.lon-capa.org/ +for more information. +
+END + } return $description; + } # ------------------------------------------------- End description page @@ -942,7 +1025,10 @@ END # ------------------------------------------------- Make RPM description block sub make_rpm_description_block { - my $description=<
+
+Error! A LON-CAPA-base RPM +was never installed on this system! + |
+
++Name : $rpmname +Version : $rpmversion +Vendor : $rpmvendor +Release : $rpmrelease +Build Host : $rpmbuildhost +Group : $rpmgroup +License : $rpmlicense +Summary : $rpmsummary +Description : +$rpmdescription ++ |
@@ -1001,8 +1140,12 @@ END $maxcount=$count if $count>$maxcount; delete $diraccount{$d}; } + if ($mode eq 'status') { + $statusheader="
@@ -1082,7 +1252,8 @@ END
# ------------------------- Make directory and file structure description block
sub make_directory_and_file_structure_description_block {
- my ($dirs)=@_;
+ my ($dirs,$mode)=@_;
+ my $statusheader; my $filestatus;
my $description=<
@@ -1136,8 +1307,14 @@ END
END
}
if (@files) {
+ if ($mode eq 'status') {
+ $statusheader=<Type
File Name
Function
@@ -1181,8 +1358,67 @@ END
$source="$source";
}
}
+ if ($mode eq 'status') {
+ $filestatus='';
+ my $fs;
+ my $listing2=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'};
+ my @E=split(/\s+/,$listing2); shift @E;
+ if (@E) {
+ $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g\n" 2>/dev/null | wc -l`; chop $fs;
+ if ($fs!=(@E+0)) {
+ $ecount=(@E+0);
+ $estuff=join(",",@E);
+ $filestatus="ERROR. SOME FILES ARE MISSING ";
+ }
+ $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g\n" 2>/dev/null | sort | uniq | wc -l`; chop $fs;
+ if ($fs!=1) {
+ $filestatus='ERROR. THERE ARE MULTIPLE OWNERSHIPS/PERMISSIONS WHEN ALL THESE FILES SHOULD HAVE THE SAME CONFIGURATION ';
+ }
+ else {
+ $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g\n" 2>/dev/null | sort | uniq`; chop $fs;
+ }
+ }
+ else {
+ $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;
+ }
+ my $fsl=`find /$filesfull[$i] -type l -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;
+ unless ($fs || $filestatus) {
+ $filestatus='MISSING ';
+ }
+ elsif (!$filestatus) {
+
+ $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
+ $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
+ $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
+ $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
+
+ my @fss=split(/\t/,$fs);
+ my $fssz=$fss[0];
+ $fssz="0" . $fss[0] if length($fss[0])<4;
+ $fss[0]=$fssz;
+ $fs="$fss[0] $fss[1]:$fss[2]";
+ $s=' ';
+ if ($fsl) {
+ $fs="$fss[1]:$fss[2]";
+ $s='';
+ }
+ if ($fs eq "$chmod$s$chown" && $fs eq "$devchmod$s$devchown") {
+ $filestatus='runtime+development ';
+ }
+ elsif ($fs eq "$chmod$s$chown") {
+ $filestatus='runtime ';
+ }
+ elsif ($fs eq "$devchmod$s$devchown") {
+ $filestatus='development ';
+ }
+ else {
+ $filestatus="ERROR ";
+ }
+ }
+ }
$description.=<
$fs
$category
$files[$i]