summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
Diffstat (limited to 'installer')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm32
1 files changed, 24 insertions, 8 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index 82ab6163..3ab035bc 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -139,12 +139,28 @@ sub initialize
exit 1;
}
my $support = $supportedDistros{lc($distroName)}->{support};
- if ($actionType eq 'install' && $support !~ m[install]i) {
- print _tr(
- "Sorry, distro '%s' can not be installed, only cloned.\n",
- $distroName
- );
- exit 1;
+ if ($support !~ m[install]i) {
+ if ($actionType eq 'install') {
+ print _tr(
+ "Sorry, distro '%s' can not be installed, only cloned!\n",
+ $distroName
+ );
+ exit 1;
+ }
+ elsif ($actionType eq 'update') {
+ print _tr(
+ "Sorry, vendor-OS '%s' has been cloned, don't know how to update it!\n",
+ $distroName
+ );
+ exit 1;
+ }
+ elsif ($actionType eq 'shell') {
+ print _tr(
+ "Sorry, vendor-OS '%s' has been cloned, no support for chrooted shell available!\n",
+ $distroName
+ );
+ exit 1;
+ }
}
# load module for the requested distro:
@@ -162,7 +178,7 @@ sub initialize
$distro->initialize($self);
$self->{distro} = $distro;
- if ($actionType ne 'clone') {
+ if ($actionType =~ m{^(install|update|shell)}) {
# setup path to distribution-specific info:
my $sharedDistroInfoDir
= "$openslxConfig{'base-path'}/share/distro-info/$distro->{'base-name'}";
@@ -203,7 +219,7 @@ sub initialize
= "$openslxConfig{'private-path'}/stage1/$self->{'vendor-os-name'}";
vlog(1, "vendor-OS path is '$self->{'vendor-os-path'}'");
- if ($actionType ne 'clone') {
+ if ($actionType =~ m{^(install|update|shell)}) {
$self->createPackager();
$self->createMetaPackager();
}