version 1.81, 2005/05/09 09:54:02
|
version 1.84, 2005/07/05 13:31:27
|
Line 59 sub is_student {
|
Line 59 sub is_student {
|
# Debugging: Dump the environment for debugging. |
# Debugging: Dump the environment for debugging. |
# |
# |
sub dumpenv { |
sub dumpenv { |
print "<br>-------------------<br>"; |
print "<br />-------------------<br />"; |
foreach my $key (sort (keys %env)) { |
foreach my $key (sort (keys %env)) { |
print "<br>$key -> $env{$key}"; |
print "<br />$key -> $env{$key}"; |
} |
} |
print "<br>-------------------<br>"; |
print "<br />-------------------<br />"; |
} |
} |
|
|
# |
# |
Line 113 sub send_error_mail {
|
Line 113 sub send_error_mail {
|
|
|
if (&is_student( $courseid, $coursedom)) { |
if (&is_student( $courseid, $coursedom)) { |
# build the subject and message body: |
# build the subject and message body: |
# print "sending message to course coordinators.<br>"; |
# print "sending message to course coordinators.<br />"; |
|
|
# Todo: Convert badurl into a url from file path: |
# Todo: Convert badurl into a url from file path: |
|
|
Line 130 sub send_error_mail {
|
Line 130 sub send_error_mail {
|
} |
} |
my (undef, %receivers) = &Apache::lonfeedback::decide_receiver(undef, 0, |
my (undef, %receivers) = &Apache::lonfeedback::decide_receiver(undef, 0, |
1,1,1); |
1,1,1); |
# print "<BR> sending...section: $env{'request.course.sec'}"; |
# print "<br /> sending...section: $env{'request.course.sec'}"; |
foreach my $dest (keys %receivers) { |
foreach my $dest (keys %receivers) { |
# print "<BR> dest is $dest"; |
# print "<br /> dest is $dest"; |
my @destinfo = split(/:/,$dest); |
my @destinfo = split(/:/,$dest); |
my $user = $destinfo[0]; |
my $user = $destinfo[0]; |
my $dom = $destinfo[1]; |
my $dom = $destinfo[1]; |
Line 330 foreach $texfile (@texfile) {
|
Line 330 foreach $texfile (@texfile) {
|
$temporary_file = IO::File->new('>'.$logfilename); |
$temporary_file = IO::File->new('>'.$logfilename); |
print $temporary_file '<html><head><title>LOGFILE</title></head><body><pre>'.$body_log_file.'</pre></body></html>'."\n"; |
print $temporary_file '<html><head><title>LOGFILE</title></head><body><pre>'.$body_log_file.'</pre></body></html>'."\n"; |
if ($body_log_file=~m/!\s+Emergency stop/) { |
if ($body_log_file=~m/!\s+Emergency stop/) { |
#LaTeX failed to parse tex file |
|
print "<h2>LaTeX could not successfully parse your tex file.</h2>"; |
|
print "It probably has errors in it.<br />"; |
|
my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART'; |
my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART'; |
my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND'; |
my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND'; |
my $badresource; |
my $badresource; |
|
my $badtext; |
if ($whereitbegins!=-1 and $whereitends!=-1) { |
if ($whereitbegins!=-1 and $whereitends!=-1) { |
my $badtext = substr($body_log_file,$whereitbegins+26, $whereitends-$whereitbegins-26); |
$badtext = substr($body_log_file,$whereitbegins+26, $whereitends-$whereitbegins-26); |
print "With very high probability this error occured in ".$badtext."<br /><br />"; |
|
$whereitbegins = rindex $badtext,'located in'; |
$whereitbegins = rindex $badtext,'located in'; |
if ($whereitbegins != -1) { |
if ($whereitbegins != -1) { |
|
|
$badresource = substr($badtext, $whereitbegins+27, |
$badresource = substr($badtext, $whereitbegins+27, |
length($badtext) - $whereitbegins - 48); |
length($badtext) - $whereitbegins - 48); |
# print "<BR>failing resourcename: $badresource<BR>"; |
# print "<br />failing resourcename: $badresource<br />"; |
} |
} |
} |
} |
print "Here are the error messages in the LaTeX log file</br><br /><pre>"; |
|
my $sygnal = 0; |
|
for (my $i=0;$i<=$#content_of_file;$i++) { |
|
if ($content_of_file[$i]=~m/^Runaway argument?/ or $content_of_file[$i]=~m/^!/) { |
|
$sygnal = 1; |
|
} |
|
if ($content_of_file[$i]=~m/Here is how much of/) { |
|
$sygnal = 0; |
|
} |
|
if ($sygnal) { |
|
print "$content_of_file[$i]"; |
|
} |
|
} |
|
print "</pre>\n"; |
|
if ($advanced_role) { |
if ($advanced_role) { |
# print "<br> Advanced role <br>"; |
#LaTeX failed to parse tex file |
|
print "<h2>LaTeX could not successfully parse your tex file.</h2>"; |
|
print "It probably has errors in it.<br />"; |
|
print "With very high probability this error occured in ".$badtext."<br /><br />"; |
|
print "Here are the error messages in the LaTeX log file<br /><pre>"; |
|
my $sygnal = 0; |
|
for (my $i=0;$i<=$#content_of_file;$i++) { |
|
if ($content_of_file[$i]=~m/^Runaway argument?/ or $content_of_file[$i]=~m/^!/) { |
|
$sygnal = 1; |
|
} |
|
if ($content_of_file[$i]=~m/Here is how much of/) { |
|
$sygnal = 0; |
|
} |
|
if ($sygnal) { |
|
print "$content_of_file[$i]"; |
|
} |
|
} |
|
print "</pre>\n"; |
|
# print "<br /> Advanced role <br />"; |
print "<b><big>The link to "; |
print "<b><big>The link to "; |
$logfilename=~s/\/home\/httpd//; |
$logfilename=~s/\/home\/httpd//; |
print "<a href=\"$logfilename\">Your log file </a></big></b>"; |
print "<a href=\"$logfilename\">Your log file </a></big></b>"; |
Line 386 foreach $texfile (@texfile) {
|
Line 388 foreach $texfile (@texfile) {
|
# $name_file - is the name of the LaTeX file. |
# $name_file - is the name of the LaTeX file. |
# $identifier - is the unique LaTeX identifier.l |
# $identifier - is the unique LaTeX identifier.l |
|
|
|
print "<br />There are errors in $badtext"; |
|
print "<br />These errors prevent this resource from printing correctly"; |
my $tex_handle = IO::File->new($name_file); |
my $tex_handle = IO::File->new($name_file); |
my @tex_contents = <$tex_handle>; |
my @tex_contents = <$tex_handle>; |
&send_error_mail($identifier, $badresource, $body_log_file, \@tex_contents); |
&send_error_mail($identifier, $badresource, $body_log_file, \@tex_contents); |
|
print "<br />A message has been sent to the instructor describing this failure<br />" |
} |
} |
|
|
} elsif ($body_log_file=~m/<inserted text>/) { |
} elsif ($body_log_file=~m/<inserted text>/) { |
Line 418 foreach $texfile (@texfile) {
|
Line 423 foreach $texfile (@texfile) {
|
my $ps_file = my $tempo_file = $1.'temporar.ps'; |
my $ps_file = my $tempo_file = $1.'temporar.ps'; |
my $pdf_file = $1.'.pdf'; |
my $pdf_file = $1.'.pdf'; |
if ($laystyle eq 'album' and $numberofcolumns eq '2') { |
if ($laystyle eq 'album' and $numberofcolumns eq '2') { |
$comma = "psnup -2 -s1.0 $new_name_file"; |
my $papera=$paper; |
|
if ($papera eq 'letter') {$papera='';} |
|
if ($papera ne '') {$papera='-p'.$papera;} |
|
$comma = "psnup $papera -2 -s1.0 $new_name_file"; |
&busy_wait_command("$comma $tempo_file 1>/dev/null 2>/dev/null", |
&busy_wait_command("$comma $tempo_file 1>/dev/null 2>/dev/null", |
"for $status_statement now Modifying PS layout", |
"for $status_statement now Modifying PS layout", |
\%prog_state,$tempo_file); |
\%prog_state,$tempo_file); |
Line 488 foreach $texfile (@texfile) {
|
Line 496 foreach $texfile (@texfile) {
|
$new_name_file =~ m/^(.*)\./; |
$new_name_file =~ m/^(.*)\./; |
my $ps_file = my $tempo_file = $1.'temporar.ps'; |
my $ps_file = my $tempo_file = $1.'temporar.ps'; |
my $pdf_file = $1.'.pdf'; |
my $pdf_file = $1.'.pdf'; |
|
$papera=~s/t/p/; |
if ($laystyle eq 'album' and $numberofcolumns eq '2') { |
if ($laystyle eq 'album' and $numberofcolumns eq '2') { |
$comma = "psnup -2 -s1.0 $new_name_file"; |
$comma = "psnup $papera -2 -s1.0 $new_name_file"; |
&busy_wait_command("$comma $tempo_file 1>/dev/null 2>/dev/null", |
&busy_wait_command("$comma $tempo_file 1>/dev/null 2>/dev/null", |
"for $status_statement now Modifying PS layout", |
"for $status_statement now Modifying PS layout", |
\%prog_state,$tempo_file); |
\%prog_state,$tempo_file); |
} elsif ($laystyle eq 'book' and $numberofcolumns eq '2') { |
} elsif ($laystyle eq 'book' and $numberofcolumns eq '2') { |
$papera=~s/t/p/; |
|
$comma = 'pstops '.$papera.' "2:0+1(0.48w,0)"'; |
$comma = 'pstops '.$papera.' "2:0+1(0.48w,0)"'; |
&busy_wait_command("$comma $new_name_file $tempo_file 1>/dev/null 2>/dev/null", |
&busy_wait_command("$comma $new_name_file $tempo_file 1>/dev/null 2>/dev/null", |
"for $status_statement now Modifying PS layout", |
"for $status_statement now Modifying PS layout", |