X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=modulemanager;h=1be9f52f90d3249000f722e6402c95ac059077a2;hb=28fef58b882e34369c935d56cb4ac50429cba8c7;hp=d44ccbeb95df357049570dc61eaf665863af372a;hpb=127683c29e6eb33c21f85cf1ccba6fb85fc0cdec;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/modulemanager b/modulemanager index d44ccbeb9..1be9f52f9 100755 --- a/modulemanager +++ b/modulemanager @@ -1,9 +1,10 @@ #!/usr/bin/env perl - # # InspIRCd -- Internet Relay Chat Daemon # -# Copyright (C) 2012-2017 Peter Powell +# Copyright (C) 2012-2014, 2017-2020 Sadie Powell +# Copyright (C) 2012 Robby +# Copyright (C) 2009-2010 Daniel De Graaf # Copyright (C) 2008-2009 Robin Burchell # # This file is part of InspIRCd. InspIRCd is free software: you can @@ -73,7 +74,7 @@ sub parse_url { } 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+)/) { @@ -97,7 +98,7 @@ sub parse_url { $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"; @@ -123,8 +124,8 @@ while () { 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}}) { @@ -137,7 +138,7 @@ for my $mod (keys %modules) { } delete $modules{$mod} unless %{$modules{$mod}}; } -$modules{core}{$1} = { +$modules{core}{$installed{core}} = { url => 'NONE', depends => [], conflicts => [], @@ -145,7 +146,7 @@ $modules{core}{$1} = { }; # set up core module list -for my $modname () { +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 @@ -254,7 +255,7 @@ sub resolve_deps { } 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}) { @@ -296,6 +297,7 @@ command 'list', 'List available third-party modules', sub { my $vers = join ' ', map { $_ eq $instver ? "\e[1m$_\e[m" : $_ } @vers; print "$mod ($vers) - $desc\n"; } + exit 0; }; execute_command @ARGV; @@ -333,7 +335,7 @@ for my $mod (sort keys %todo) { 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 {