--- loncom/build/lpml_parse.pl 2001/09/08 22:47:38 1.7
+++ loncom/build/lpml_parse.pl 2001/09/17 18:25:15 1.10
@@ -177,7 +177,8 @@ while ($token = $parser->get_token()) {
}
}
$cleanstring=&trim($cleanstring);
-$cleanstring=~s/\s*\n\s*//g;
+$cleanstring=~s/\>\s*\n\s*\\>\THE END\n";
}
if ($mode eq 'install') {
return '';
@@ -316,7 +317,7 @@ sub format_lpml {
my (@tokeninfo)=@_;
my $date=`date`; chop $date;
if ($mode eq 'html') {
- $lpml = "LPML BEGINNING: $date";
+ $lpml = "
LPML BEGINNING: $date";
}
elsif ($mode eq 'install') {
print '# LPML install targets. Linux Packaging Markup Language,';
@@ -334,7 +335,7 @@ sub format_targetroot {
$text=$targetroot if $targetroot;
$parser->get_tag('/targetroot');
if ($mode eq 'html') {
- return $targetroot="\nTARGETROOT: $text";
+ return $targetroot="\n
TARGETROOT: $text";
}
elsif ($mode eq 'install') {
return '# TARGET INSTALL LOCATION is "'.$targetroot."\"\n";
@@ -349,7 +350,7 @@ sub format_sourceroot {
$text=$sourceroot if $sourceroot;
$parser->get_tag('/sourceroot');
if ($mode eq 'html') {
- return $sourceroot="\nSOURCEROOT: $text";
+ return $sourceroot="\n
SOURCEROOT: $text";
}
elsif ($mode eq 'install') {
return '# SOURCE CODE LOCATION IS "'.$sourceroot."\"\n";;
@@ -363,7 +364,8 @@ sub format_categories {
my $text=&trim($parser->get_text('/categories'));
$parser->get_tag('/categories');
if ($mode eq 'html') {
- return $categories="\nBEGIN CATEGORIES\n$text\nEND CATEGORIES\n";
+ return $categories="\n
BEGIN CATEGORIES\n$text\n".
+ "
END CATEGORIES\n";
}
else {
return '';
@@ -378,8 +380,8 @@ sub format_category {
$parser->get_text('/category');
$parser->get_tag('/category');
if ($mode eq 'html') {
- return $category="\nCATEGORY $category_att_name $category_att_type ".
- "$chmod $chown";
+ return $category="\n
CATEGORY $category_att_name ".
+ "$category_att_type $chmod $chown";
}
else {
if ($category_att_type eq $categorytype) {
@@ -417,7 +419,7 @@ sub format_rpm {
my $text=&trim($parser->get_text('/rpm'));
$parser->get_tag('/rpm');
if ($mode eq 'html') {
- return $rpm="\nBEGIN RPM\n$text\nEND RPM";
+ return $rpm="\n
BEGIN RPM\n$text\n
END RPM";
}
else {
return '';
@@ -428,7 +430,7 @@ sub format_rpmSummary {
my $text=&trim($parser->get_text('/rpmSummary'));
$parser->get_tag('/rpmSummary');
if ($mode eq 'html') {
- return $rpmSummary="\nRPMSUMMARY $text";
+ return $rpmSummary="\n
RPMSUMMARY $text";
}
else {
return '';
@@ -439,7 +441,7 @@ sub format_rpmName {
my $text=&trim($parser->get_text('/rpmName'));
$parser->get_tag('/rpmName');
if ($mode eq 'html') {
- return $rpmName="\nRPMNAME $text";
+ return $rpmName="\n
RPMNAME $text";
}
else {
return '';
@@ -450,7 +452,7 @@ sub format_rpmVersion {
my $text=$parser->get_text('/rpmVersion');
$parser->get_tag('/rpmVersion');
if ($mode eq 'html') {
- return $rpmVersion="\nRPMVERSION $text";
+ return $rpmVersion="\n
RPMVERSION $text";
}
else {
return '';
@@ -461,7 +463,7 @@ sub format_rpmRelease {
my $text=$parser->get_text('/rpmRelease');
$parser->get_tag('/rpmRelease');
if ($mode eq 'html') {
- return $rpmRelease="\nRPMRELEASE $text";
+ return $rpmRelease="\n
RPMRELEASE $text";
}
else {
return '';
@@ -472,7 +474,7 @@ sub format_rpmVendor {
my $text=$parser->get_text('/rpmVendor');
$parser->get_tag('/rpmVendor');
if ($mode eq 'html') {
- return $rpmVendor="\nRPMVENDOR $text";
+ return $rpmVendor="\n
RPMVENDOR $text";
}
else {
return '';
@@ -483,7 +485,7 @@ sub format_rpmBuildRoot {
my $text=$parser->get_text('/rpmBuildRoot');
$parser->get_tag('/rpmBuildRoot');
if ($mode eq 'html') {
- return $rpmBuildRoot="\nRPMBUILDROOT $text";
+ return $rpmBuildRoot="\n
RPMBUILDROOT $text";
}
else {
return '';
@@ -494,7 +496,7 @@ sub format_rpmCopyright {
my $text=$parser->get_text('/rpmCopyright');
$parser->get_tag('/rpmCopyright');
if ($mode eq 'html') {
- return $rpmCopyright="\nRPMCOPYRIGHT $text";
+ return $rpmCopyright="\n
RPMCOPYRIGHT $text";
}
else {
return '';
@@ -505,7 +507,7 @@ sub format_rpmGroup {
my $text=$parser->get_text('/rpmGroup');
$parser->get_tag('/rpmGroup');
if ($mode eq 'html') {
- return $rpmGroup="\nRPMGROUP $text";
+ return $rpmGroup="\n
RPMGROUP $text";
}
else {
return '';
@@ -516,7 +518,7 @@ sub format_rpmSource {
my $text=$parser->get_text('/rpmSource');
$parser->get_tag('/rpmSource');
if ($mode eq 'html') {
- return $rpmSource="\nRPMSOURCE $text";
+ return $rpmSource="\n
RPMSOURCE $text";
}
else {
return '';
@@ -527,7 +529,7 @@ sub format_rpmAutoReqProv {
my $text=$parser->get_text('/rpmAutoReqProv');
$parser->get_tag('/rpmAutoReqProv');
if ($mode eq 'html') {
- return $rpmAutoReqProv="\nRPMAUTOREQPROV $text";
+ return $rpmAutoReqProv="\n
RPMAUTOREQPROV $text";
}
else {
return '';
@@ -538,7 +540,7 @@ sub format_rpmdescription {
my $text=$parser->get_text('/rpmdescription');
$parser->get_tag('/rpmdescription');
if ($mode eq 'html') {
- return $rpmdescription="\nRPMDESCRIPTION $text";
+ return $rpmdescription="\n
RPMDESCRIPTION $text";
}
else {
return '';
@@ -549,7 +551,7 @@ sub format_rpmpre {
my $text=$parser->get_text('/rpmpre');
$parser->get_tag('/rpmpre');
if ($mode eq 'html') {
- return $rpmpre="\nRPMPRE $text";
+ return $rpmpre="\n
RPMPRE $text";
}
else {
return '';
@@ -560,7 +562,8 @@ sub format_directories {
my $text=$parser->get_text('/directories');
$parser->get_tag('/directories');
if ($mode eq 'html') {
- return $directories="\nBEGIN DIRECTORIES\n$text\nEND DIRECTORIES\n";
+ return $directories="\n
BEGIN DIRECTORIES\n$text\n
".
+ "END DIRECTORIES\n";
}
elsif ($mode eq 'install') {
return "\n".'directories:'."\n".$text;
@@ -576,11 +579,12 @@ sub format_directory {
$parser->get_text('/directory');
$parser->get_tag('/directory');
if ($mode eq 'html') {
- return $directory="\nDIRECTORY $targetdir $categoryname $description";
+ return $directory="\n
DIRECTORY $targetdir $categoryname ".
+ "$description";
}
elsif ($mode eq 'install') {
- return "\t".'install '.$categoryhash{$categoryname}.' -d /'.
- $targetroot.$targetdir."\n";
+ return "\t".'install '.$categoryhash{$categoryname}.' -d '.
+ $targetroot.'/'.$targetdir."\n";
}
else {
return '';
@@ -612,7 +616,7 @@ sub format_categoryname {
sub format_description {
my @tokeninfo=@_;
$description='';
- my $text=&trim($parser->get_text('/description'));
+ my $text=&htmlsafe(&trim($parser->get_text('/description')));
if ($text) {
$parser->get_tag('/description');
$description=$text;
@@ -624,7 +628,7 @@ sub format_files {
my $text=$parser->get_text('/files');
$parser->get_tag('/files');
if ($mode eq 'html') {
- return $directories="\nBEGIN FILES\n$text\nEND FILES\n";
+ return $directories="\n
BEGIN FILES\n$text\n
END FILES\n";
}
elsif ($mode eq 'install') {
return "\n".'files:'."\n".$text.
@@ -644,7 +648,7 @@ sub format_links {
my $text=$parser->get_text('/links');
$parser->get_tag('/links');
if ($mode eq 'html') {
- return $links="\nBEGIN LINKS\n$text\nEND LINKS\n";
+ return $links="\n
BEGIN LINKS\n$text\n
END LINKS\n";
}
elsif ($mode eq 'install') {
return "\n".'links:'."\n\t".$text;
@@ -662,17 +666,17 @@ sub format_file {
if ($source) {
$parser->get_tag('/file');
if ($mode eq 'html') {
- return ($file="\nBEGIN FILE\n".
+ return ($file="\n
BEGIN FILE\n".
"$source $target $categoryname $description $note " .
"$build $status $dependencies" .
"\nEND FILE");
}
elsif ($mode eq 'install' && $categoryname ne 'conf') {
- return "\t".'@test -e '.$sourceroot.$source.
+ return "\t".'@test -e '.$sourceroot.'/'.$source.
' && install '.
$categoryhash{$categoryname}.' '.
- $sourceroot.$source.' '.
- $targetroot.$target.
+ $sourceroot.'/'.$source.' '.
+ $targetroot.'/'.$target.
' || echo "**** LON-CAPA WARNING '.
'**** CVS source file does not exist: '.$sourceroot.'/'.
$source.'"'."\n";
@@ -692,13 +696,13 @@ sub format_link {
if ($linkto) {
$parser->get_tag('/link');
if ($mode eq 'html') {
- return $link="\nBEGIN LINK\n".
+ return $link="\n
BEGIN LINK\n".
"$linkto $target $categoryname $description $note " .
"$build $status $dependencies" .
"\nEND LINK";
}
elsif ($mode eq 'install') {
- my @targets=split(/\;/,$target);
+ my @targets=map {s/^\s*//;s/\s$//;$_} split(/\;/,$target);
foreach my $tgt (@targets) {
push @links,"\t".'ln -fs /'.$linkto.' /'.$targetroot.$tgt.
"\n";
@@ -722,7 +726,7 @@ sub format_fileglob {
if ($sourcedir) {
$parser->get_tag('/fileglob');
if ($mode eq 'html') {
- return $fileglob="\nBEGIN FILEGLOB\n".
+ return $fileglob="\n
BEGIN FILEGLOB\n".
"$glob sourcedir $targetdir $categoryname $description $note ".
"$build $status $dependencies $filenames" .
"\nEND FILEGLOB";
@@ -730,7 +734,7 @@ sub format_fileglob {
elsif ($mode eq 'install') {
return "\t".'install '.
$categoryhash{$categoryname}.' '.
- $sourceroot.'/'.$sourcedir.$glob.' '.
+ $sourceroot.'/'.$sourcedir.'[^CVS]'.$glob.' '.
$targetroot.'/'.$targetdir.'.'."\n";
}
else {
@@ -848,6 +852,13 @@ sub format_linkto {
}
return '';
}
+# ------------------------------------- Render less-than and greater-than signs
+sub htmlsafe {
+ my $text=@_[0];
+ $text =~ s/</g;
+ $text =~ s/>/>/g;
+ return $text;
+}
# --------------------------------------- remove starting and ending whitespace
sub trim {
my ($s)=@_; $s=~s/^\s*//; $s=~s/\s*$//; return $s;