#!/usr/bin/env perl
-
#
# InspIRCd -- Internet Relay Chat Daemon
#
-# Copyright (C) 2012-2017 Peter Powell <petpow@saberuk.com>
+# Copyright (C) 2012-2014, 2017-2021 Sadie Powell <sadie@witchery.services>
+# Copyright (C) 2012 Robby <robby@chatbelgie.be>
+# Copyright (C) 2010 Daniel De Graaf <danieldg@inspircd.org>
# Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
#
# This file is part of InspIRCd. InspIRCd is free software: you can
BEGIN {
- require 5.10.0;
unless (eval "use LWP::Simple; 1") {
die "Your system is missing the LWP::Simple Perl module!";
}
}
}
-use feature ':5.10';
+use v5.10.0;
use strict;
use warnings FATAL => qw(all);
return if $url_seen{$src};
$url_seen{$src}++;
- my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
+ my $ua = LWP::UserAgent->new;
my $response = $ua->get($src);
unless ($response->is_success) {
$mod->{mask} = $1;
} elsif (/^source (\S+)/) {
parse_url $1;
- } else {
- print "Unknown line in $src: $_\n";
}
}
}
# hash of installed module versions from our mini-database, key (m_foobar) to version (00abacca..).
-my %mod_versions = read_config_file '.modulemanager';
+my %mod_versions = read_config_file "$RealDir/.modulemanager";
# useless helper stub
sub getmodversion {
}
# read in external URL sources
-open SRC, 'sources.list' or die "Could not open sources.list: $!";
+open SRC, "$RealDir/sources.list" or die "Could not open sources.list: $!";
while (<SRC>) {
next if /^\s*#/;
parse_url($_);
close SRC;
# determine core version
-`./src/version.sh` =~ /InspIRCd-([0-9.]+)/ or die "Cannot determine inspircd version";
-$installed{core} = $1;
+my %version = get_version();
+$installed{core} = "$version{MAJOR}.$version{MINOR}.$version{PATCH}";
for my $mod (keys %modules) {
MODVER: for my $mver (keys %{$modules{$mod}}) {
for my $dep (@{$modules{$mod}{$mver}{depends}}) {
}
delete $modules{$mod} unless %{$modules{$mod}};
}
-$modules{core}{$1} = {
+$modules{core}{$installed{core}} = {
url => 'NONE',
depends => [],
conflicts => [],
};
# set up core module list
-for my $modname (<src/modules/m_*.cpp>) {
+for my $modname (<$RealDir/src/modules/m_*.cpp>) {
my $mod = basename($modname, '.cpp');
my $ver = getmodversion($mod) || '0.0';
$ver =~ s/\$Rev: (.*) \$/$1/; # for storing revision in SVN
for my $mod (keys %installed) {
next if $todo{$mod};
print "Uninstalling $mod $installed{$mod}\n";
- unlink "src/modules/$mod.cpp";
+ unlink "$RealDir/src/modules/$mod.cpp";
}
my $count = scalar keys %todo;
my $response = $ua->get($url);
if ($response->is_success) {
- open(MF, ">src/modules/$mod.cpp") or die "\nFilesystem not writable: $!";
+ open(MF, '>', "$RealDir/src/modules/$mod.cpp") or die "\nFilesystem not writable: $!";
print MF $response->content;
close(MF);
print " - done\n";
}
# write database of installed versions
-write_config_file '.modulemanager', %mod_versions;
+write_config_file "$RealDir/.modulemanager", %mod_versions;
print "Finished!\n";