X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=modulemanager;h=ee281d7fac0bd1a3c6efe07977910ceeb3827897;hb=e0e1becc2f9129203966e69b2919582c11ab86f7;hp=ff2bd3056137768cba3fa6cf69b10bb989c12f0c;hpb=5e8f135c6ae5874d7c4367fba274dc2aa6541a00;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/modulemanager b/modulemanager index ff2bd3056..ee281d7fa 100755 --- a/modulemanager +++ b/modulemanager @@ -21,11 +21,21 @@ use strict; use warnings FATAL => qw(all); -use LWP::Simple; -use make::configure; +use make::common; + +BEGIN { + unless (module_installed("LWP::Simple")) { + die "Your system is missing the LWP::Simple Perl module!"; + } + unless (module_installed("Crypt::SSLeay") || module_installed("IO::Socket::SSL")) { + die "Your system is missing the Crypt::SSLeay or IO::Socket::SSL Perl modules!"; + } + +} -our @modlist; +use File::Basename; +use LWP::Simple; my %installed; # $installed{name} = $version @@ -46,15 +56,20 @@ sub parse_url; # retrieve and parse entries from sources.list sub parse_url { - my $src = shift; + chomp(my $src = shift); return if $url_seen{$src}; $url_seen{$src}++; - my $doc = get($src); - die "Could not retrieve $_" unless defined $doc; + my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 }); + my $response = $ua->get($src); + + unless ($response->is_success) { + my $err = $response->message; + die "Could not retrieve $src: $err"; + } my $mod; - for (split /\n+/, $doc) { + for (split /\n+/, $response->decoded_content) { s/^\s+//; # ignore whitespace at start next if /^#/; if (/^module (\S+) (\S+) (\S+)/) { @@ -116,8 +131,6 @@ while () { } close SRC; -getmodules(1); - # determine core version `./src/version.sh` =~ /InspIRCd-([0-9.]+)/ or die "Cannot determine inspircd version"; $installed{core} = $1; @@ -141,9 +154,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 () { + 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 +262,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) {