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