#!/usr/bin/perl -w

BEGIN {
  unshift @INC, "$ENV{'PWD'}";
}
use Cwd;

my $dir = shift;
if(not defined($dir)) {
  $dir = getcwd();
}
unshift @INC, "$dir";

print "Trying to load plugins from dir <$dir>\n";

if(!opendir(PLT, $dir)) {
  print "Can't read dir <$dir>!";
  exit(1);
}
@plugins = grep { $_ =~ m{KIWI[A-Za-z]+Plugin\.pm$} } readdir(PLT);

my $num_in_dir = @plugins;
print "Number of loadable plugins: $num_in_dir\n";
print "@plugins";
print "\n";

@plugins = grep { s{(^[^.]+)\..+}{$1} } @plugins;

foreach my $plugin(@plugins) {
  eval "require $plugin";
  if($@) {
    print "Failed to load plugin <$plugin> from dir <$dir>:\n";
    print "$@\n";
  }
  else {
    print "Plugin <$plugin> loaded successfully.\n";
    $num_in_dir--;
  }
}

if($num_in_dir != 0) {
  print "Couldn't load $num_in_dir plugins from $dir\n";
  exit($num_in_dir);
}

exit 0;


