Actually works
authorTim Pope <code@tpope.net>
Sun, 21 Aug 2005 00:35:51 +0000 (00:35 +0000)
committerTim Pope <code@tpope.net>
Sun, 21 Aug 2005 00:35:51 +0000 (00:35 +0000)
perl/schedproc

index b3bd248f79d0ddd5399534c8ba83b56b2528e496..a61b4532491e20dbdf1dc0937d1f36427e575dc9 100755 (executable)
@@ -73,7 +73,7 @@ if(!defined($opts{'format'}) && defined($opts{'out'})) {
     $opts{'format'} = $opts{'out'};
     $opts{'format'} =~ s/.*\.//;
     $opts{'format'} =~ s/^(.*\/|)\.?schedule$/mhc/;
-    undef $opts{'out'} if($opts{'out'} =~ /^(html|mhc|csv|cvs|xml|grades)$/);
+    undef $opts{'out'} if($opts{'out'} =~ /^(html|mhc|csv|vcs|xml|grades)$/);
 }
 
 $opts{'format'} ||= "";
@@ -165,6 +165,7 @@ sub read_fileurl {
 sub get_schedule {
     my $content = read_fileurl($opts{'schedule'});
     my $ref = XMLin($content, ForceArray => [ 'class', 'off' ], KeyAttr => "");
+    die "Could not load schedule.\n" unless $ref->{'class'};
     return @{$ref->{'class'}};
 }
 
@@ -174,21 +175,26 @@ sub get_grades {
     return $ref;
 }
 
-sub get_faculty_email {
-    my ($name, $email, $url);
-    if((-f ($opts{'faculty'}||"")) && ! %faculty) {
-       open INS,$opts{'faculty'} or die $!;
-       while($_ = <INS>) {
-           chomp;
+sub load_faculty {
+    my ($name, $email, $url, $content);
+    if(($opts{'faculty'}) && ! %faculty) {
+       $content = read_fileurl($opts{'faculty'});
+       foreach $_ (split("\n", $content)) {
            m/"([^"]*)",([^,]*),([^,]*)/; # "
            ($name, $email, $url) = ($1, $2, $3);
+           next unless ($name);
            $name =~ s/ [A-Z]\.//g;
            $name = lc $name;
            $name =~ s/\W//g;
-           $faculty{$name} = $email;
-           $facurul{$name} = $urll;
+           $faculty{$name} = $email if($email);
+           $facurl{$name} = $url if ($url);
        }
     }
+}
+
+sub get_faculty_email {
+    load_faculty();
+    my ($name);
     $name = shift;
     $name =~ s/ [A-Z]r?\.//g;
     $name = lc $name;
@@ -197,20 +203,8 @@ sub get_faculty_email {
 }
 
 sub get_faculty_url {
-    my ($name, $email, $url);
-    if((-f ($opts{'faculty'}||"")) && ! %faculty) {
-       open INS, $opts{'faculty'} or die $!;
-       while($_ = <INS>) {
-           chomp;
-           m/"([^"]*)",([^,]*),([^,]*)/; # "
-           ($name, $email, $url) = ($1, $2, $3);
-           $name =~ s/ [A-Z]\.//g;
-           $name = lc $name;
-           $name =~ s/\W//g;
-           $faculty{$name} = $email;
-           $facurl{$name} = $url;
-       }
-    }
+    load_faculty();
+    my ($name);
     $name = shift;
     $name =~ s/ [A-Z]r?\.//g;
     $name = lc $name;