]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Filter out modules not applicable to the installed inspircd version
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 12 Mar 2010 00:12:51 +0000 (00:12 +0000)
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 12 Mar 2010 00:12:51 +0000 (00:12 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12625 e03df62e-2008-0410-955e-edbf42e46eb7

modulemanager

index 8b71081236407e5f8e3e734de5ff3caadce51df4..41c2c872c54fd3b8467e245b8475bbf6e6701938 100755 (executable)
@@ -101,6 +101,18 @@ getmodules(1);
 # determine core version
 `./src/version.sh` =~ /InspIRCd-([0-9.]+)/ or die "Cannot determine inspircd version";
 $installed{core} = $1;
+for my $mod (keys %modules) {
+       MODVER: for my $mver (keys %{$modules{$mod}}) {
+               for my $dep (@{$modules{$mod}{$mver}{depends}}) {
+                       next unless $dep =~ /^core (.*)/;
+                       if (!ver_in_range($installed{core}, $1)) {
+                               delete $modules{$mod}{$mver};
+                               next MODVER;
+                       }
+               }
+       }
+       delete $modules{$mod} unless %{$modules{$mod}};
+}
 $modules{core}{$1} = {
        url => 'NONE',
        depends => [],