source: perl/lib/BarnOwl/ModuleLoader.pm @ b547aa4

barnowl_perlaimdebianrelease-1.10release-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since b547aa4 was 2622450, checked in by Nelson Elhage <nelhage@mit.edu>, 17 years ago
Report more errors when something goes wrong
  • Property mode set to 100644
File size: 870 bytes
Line 
1use strict;
2use warnings;
3
4package BarnOwl::ModuleLoader;
5
6use lib (BarnOwl::get_data_dir() . "/modules/");
7use PAR (BarnOwl::get_data_dir() . "/modules/*.par");
8use PAR ($ENV{HOME} . "/.owl/modules/*.par");
9
10sub load_all {
11    my %modules;
12    my @modules;
13   
14    for my $dir ( BarnOwl::get_data_dir() . "/modules",
15                  $ENV{HOME} . "/.owl/modules" ) {
16        opendir(my $dh, $dir) or next;
17        @modules = grep /\.par$/, readdir($dh);
18        closedir($dh);
19        for my $mod (@modules) {
20            my ($class) = ($mod =~ /^(.+)\.par$/);
21            $modules{$class} = 1;
22        }
23    }
24    for my $class (keys %modules) {
25        if(!defined eval "use BarnOwl::Module::$class") {
26            BarnOwl::error("Unable to load module $class: $!") if $!;
27            BarnOwl::error("Unable to load module $class: $@") if $@;
28        }
29    }
30}
31
321;
Note: See TracBrowser for help on using the repository browser.