summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2008-03-17 23:15:09 +0100
committerOliver Tappe2008-03-17 23:15:09 +0100
commit249147e1be89bc83da65fa08e8a5b796387049c1 (patch)
treedb663386e8711011f3f0e284456de91cbfc782c8 /installer/OpenSLX/OSSetup/Engine.pm
parent* added getStage3Attrs() (diff)
downloadcore-249147e1be89bc83da65fa08e8a5b796387049c1.tar.gz
core-249147e1be89bc83da65fa08e8a5b796387049c1.tar.xz
core-249147e1be89bc83da65fa08e8a5b796387049c1.zip
* renamed getPackagesForSelection() to getInstallablePackagesForSelection()
and changed the semantics to automatically exclude packages that are already installed git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1646 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Engine.pm')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm9
1 files changed, 7 insertions, 2 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index dd8d98d5..59057336 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -689,7 +689,7 @@ sub metaPackager
return $self->{'meta-packager'};
}
-sub getPackagesForSelection
+sub getInstallablePackagesForSelection
{
my $self = shift;
my $selKey = shift;
@@ -698,8 +698,13 @@ sub getPackagesForSelection
my $selection = $self->{'distro-info'}->{selection}->{$selKey};
return if !$selection;
+
+ my @pkgs = split m{\s+}, $selection->{packages};
+ my %installedPkgs;
+ @installedPkgs{ $self->{'packager'}->getInstalledPackages() } = ();
+ @pkgs = grep { !exists $installedPkgs{$_} } @pkgs;
- return $selection->{packages};
+ return join ' ', @pkgs;
}
sub busyboxBinary