summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar danieldg2010-03-12 00:11:26 +0000
committerGravatar danieldg2010-03-12 00:11:26 +0000
commit7fff0910f33b0f284515490a19e7f41f4e7c9bf9 (patch)
treeab4cd821ca5f435400e7d99e2b4a61a82faa4841
parentDon't implement --atleast-version ourselves, incorrectly (diff)
Filter out modules not applicable to the installed inspircd version
git-svn-id: http://svn.inspircd.org/repository/branches/1_2_stable@12624 e03df62e-2008-0410-955e-edbf42e46eb7
-rwxr-xr-xmodulemanager12
1 files changed, 12 insertions, 0 deletions
diff --git a/modulemanager b/modulemanager
index 37aebac9b..d261048d8 100755
--- a/modulemanager
+++ b/modulemanager
@@ -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 => [],