summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk von Suchodoletz2008-12-17 17:39:51 +0100
committerDirk von Suchodoletz2008-12-17 17:39:51 +0100
commite335b2132f6c9508861c01cda50ce8734b872b4e (patch)
treec51828ae7eb73b34af8deec0fbe2e8ecfdf2b617
parentMore general location of helper functions (to check if a certain (diff)
downloadcore-e335b2132f6c9508861c01cda50ce8734b872b4e.tar.gz
core-e335b2132f6c9508861c01cda50ce8734b872b4e.tar.xz
core-e335b2132f6c9508861c01cda50ce8734b872b4e.zip
Trying to simplify stuff in plugins (checks if a certain package
is installed and installing ...) git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2427 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--lib/OpenSLX/Utils.pm14
-rw-r--r--os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm18
-rw-r--r--os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm15
-rw-r--r--os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm15
-rw-r--r--os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm6
5 files changed, 29 insertions, 39 deletions
diff --git a/lib/OpenSLX/Utils.pm b/lib/OpenSLX/Utils.pm
index dbc35270..9686a152 100644
--- a/lib/OpenSLX/Utils.pm
+++ b/lib/OpenSLX/Utils.pm
@@ -688,4 +688,18 @@ sub isInPath
return $path ? 1 : 0;
}
+=item B<isPackInstalled()>
+
+Check whether a certain package is installed. Could be refined somehow to use
+the package mechanism of the given distribution!?
+
+=cut
+
+sub isPackInstalled
+{
+ my $self = shift;
+ my $pack = shift;
+ return $self->isInPath($pack);
+}
+
1;
diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
index 61e278cf..962fb3db 100644
--- a/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
@@ -41,24 +41,6 @@ sub initialize
return 1;
}
-sub pathOf
-{
- my $self = shift;
- my $binary = shift;
-
- return qx{which $binary 2>/dev/null};
-}
-
-sub isInPath
-{
- my $self = shift;
- my $binary = shift;
-
- my $path = $self->pathOf($binary);
-
- return $path ? 1 : 0;
-}
-
sub getDefaultDesktopManager
{
my $self = shift;
diff --git a/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm b/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm
index f19fa00c..52b18032 100644
--- a/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm
+++ b/os-plugins/plugins/syslog/OpenSLX/OSPlugin/syslog.pm
@@ -126,11 +126,18 @@ sub installationPhase
my $engine = $self->{'os-plugin-engine'};
- if ($self->{kind} eq 'syslog-ng' && !qx{which syslog-ng}) {
- $engine->installPackages('syslog-ng');
+ if ($self->{kind} eq 'syslog-ng' &&
+ !$self->{distro}->isPackInstalled('syslog-ng')) {
+ $engine->installPackages(
+ $self->{engine}->getInstallablePackagesForSelection('syslog-ng')
+ );
}
- if ($self->{kind} eq 'syslogd' && !qx{which syslogd}) {
- $engine->installPackages('syslogd');
+ # not sure if we ever should setup this service
+ if ($self->{kind} eq 'syslogd' &&
+ !$self->{distro}->isPackInstalled('syslog')) {
+ $engine->installPackages(
+ $self->{engine}->getInstallablePackagesForSelection('syslog')
+ );
}
if (!$self->{kind}) {
diff --git a/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm b/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
index 93f1a3eb..e0ab45ae 100644
--- a/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
@@ -89,19 +89,4 @@ sub fillRunlevelScript
return $script;
}
-sub isX11vncInstalled
-{
- my $self = shift;
- return $self->isInPath('x11vnc');
-}
-
-sub installX11vnc
-{
- my $self = shift;
- $self->{engine}->installPackages(
- $self->{engine}->getInstallablePackagesForSelection('x11vnc')
- );
- return 1;
-}
-
1;
diff --git a/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm b/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
index e73ea8a3..716cc3f7 100644
--- a/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
+++ b/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
@@ -189,8 +189,10 @@ sub installationPhase
# should we distinguish between the two different packages!?
# libvnc should be part of the xorg package!? (so no check needed)
- if (!$self->{distro}->isX11vncInstalled()) {
- $self->{distro}->installX11vnc();
+ if (!$self->{distro}->isPackInstalled('x11vnc')) {
+ $self->{distro}->installPackages(
+ $self->{engine}->getInstallablePackagesForSelection('x11vnc')
+ );
} else {
vlog(3, "x11vnc is already installed");
}