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
# 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+)/) {
}
close SRC;
-getmodules(1);
-
# determine core version
`./src/version.sh` =~ /InspIRCd-([0-9.]+)/ or die "Cannot determine inspircd version";
$installed{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;
}
}
-my $action = lc shift @ARGV;
+my $action = $#ARGV >= 0 ? lc shift @ARGV : 'help';
if ($action eq 'install') {
for my $mod (@ARGV) {