]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - modulemanager
Merge insp20
[user/henk/code/inspircd.git] / modulemanager
index ff2bd3056137768cba3fa6cf69b10bb989c12f0c..9e4670de87d216c549408fc2131bb69394eed61c 100755 (executable)
 
 use strict;
 use warnings FATAL => qw(all);
-use LWP::Simple;
 
-use make::configure;
+use make::utilities;
 
-our @modlist;
+if (!module_installed("LWP::Simple"))
+{
+       die "Your system is missing the LWP::Simple Perl module!";
+}
+
+if (!module_installed("Crypt::SSLeay") && !module_installed("IO::Socket::SSL"))
+{
+       die "Your system is missing the Crypt::SSLeay or IO::Socket::SSL Perl modules!";
+}
+
+use File::Basename;
+use LWP::Simple;
 
 my %installed;
 # $installed{name} = $version
@@ -116,8 +126,6 @@ while (<SRC>) {
 }
 close SRC;
 
-getmodules(1);
-
 # determine core version
 `./src/version.sh` =~ /InspIRCd-([0-9.]+)/ or die "Cannot determine inspircd version";
 $installed{core} = $1;
@@ -141,9 +149,8 @@ $modules{core}{$1} = {
 };
 
 # set up core module list
-for my $modname (@modlist) {
-       my $mod = "m_$modname";
-       my $modfile = "src/modules/$mod.cpp";
+for my $modname (<src/modules/m_*.cpp>) {
+       my $mod = basename($modname, '.cpp');
        my $ver = getmodversion($mod) || '0.0';
        $ver =~ s/\$Rev: (.*) \$/$1/; # for storing revision in SVN
        $installed{$mod} = $ver;
@@ -250,7 +257,7 @@ sub resolve_deps {
        }
 }
 
-my $action = lc shift @ARGV;
+my $action = $#ARGV > 0 ? lc shift @ARGV : 'help';
 
 if ($action eq 'install') {
        for my $mod (@ARGV) {