#!/usr/bin/env perl
-
#
# InspIRCd -- Internet Relay Chat Daemon
#
-# Copyright (C) 2012-2017 Peter Powell <petpow@saberuk.com>
+# Copyright (C) 2012-2014, 2017-2019 Sadie Powell <sadie@witchery.services>
+# Copyright (C) 2012 Robby <robby@chatbelgie.be>
+# Copyright (C) 2009-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
}
my $mod;
- for (split /\n+/, $response->decoded_content) {
+ for (split /\n+/, $response->content) {
s/^\s+//; # ignore whitespace at start
next if /^#/;
if (/^module (\S+) (\S+) (\S+)/) {
$mod->{description} = $1;
} elsif (/^mask (.*)/) {
$mod->{mask} = $1;
- } elsif (m#^source (http://\S+)#) {
+ } elsif (/^source (\S+)/) {
parse_url $1;
} else {
print "Unknown line in $src: $_\n";
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 => [],
}
command 'install', 'Install a third-party module', sub {
- for my $mod (@ARGV) {
+ for my $mod (@_) {
my $vers = $mod =~ s/=([-0-9.]+)// ? $1 : undef;
$mod = lc $mod;
unless ($modules{$mod}) {
my $vers = join ' ', map { $_ eq $instver ? "\e[1m$_\e[m" : $_ } @vers;
print "$mod ($vers) - $desc\n";
}
+ exit 0;
};
execute_command @ARGV;
if ($response->is_success) {
open(MF, ">src/modules/$mod.cpp") or die "\nFilesystem not writable: $!";
- print MF $response->decoded_content;
+ print MF $response->content;
close(MF);
print " - done\n";
} else {