diff --git a/usermin/upgrade.cgi b/usermin/upgrade.cgi index 46b0ba833..c20ba0582 100755 --- a/usermin/upgrade.cgi +++ b/usermin/upgrade.cgi @@ -15,6 +15,17 @@ else { &ui_print_unbuffered_header(undef, $in{'install'} ? $text{'upgrade_title2'} : $text{'upgrade_title'}, ""); +# Do we have an install dir? +my $indir = $in{'dir'}; +if (!$indir) { + my $install_dir = "$config_directory/install-dir"; + if (-e $install_dir) { + $indir = &read_file_contents($install_dir); + $indir = &trim($indir); + $indir = undef if (!-d $indir); + } + } + if ($in{'source'} == 0) { # from local file &error_setup(&text('upgrade_err1', $in{'file'})); @@ -245,7 +256,7 @@ else { } else { # Upgrading .. work out where to extract - if ($in{'dir'}) { + if ($indir) { # Since we are currently installed in a fixed directory, # just extract to a temporary location $extract = &transname(); @@ -265,7 +276,7 @@ else { $ENV{'config_dir'} = $config{'usermin_dir'}; $ENV{'webmin_upgrade'} = 1; $ENV{'autothird'} = 1; - $setup = $in{'dir'} ? "./setup.sh '$in{'dir'}'" : "./setup.sh"; + $setup = $indir ? "./setup.sh '$indir'" : "./setup.sh"; if ($in{'delete'}) { $ENV{'deletedold'} = 1; $cmd = "(cd $extract/usermin-$version && $setup && rm -rf \"$miniserv{'root'}\")"; @@ -278,7 +289,7 @@ else { print "
"; &proc::safe_process_exec($cmd, 0, 0, STDOUT, undef, 1); print ""; - if ($in{'dir'}) { + if ($indir) { # Can delete the temporary source directory system("rm -rf \"$extract\""); } diff --git a/webmin/upgrade.cgi b/webmin/upgrade.cgi index 6bf4b3bfa..f4f31d787 100755 --- a/webmin/upgrade.cgi +++ b/webmin/upgrade.cgi @@ -11,6 +11,17 @@ $| = 1; $theme_no_table = 1; &ui_print_header(undef, $text{'upgrade_title'}, ""); +# Do we have an install dir? +my $indir = $in{'dir'}; +if (!$indir) { + my $install_dir = "$config_directory/install-dir"; + if (-e $install_dir) { + $indir = &read_file_contents($install_dir); + $indir = &trim($indir); + $indir = undef if (!-d $indir); + } + } + # Save this CGI from being killed by the upgrade $SIG{'TERM'} = 'IGNORE'; @@ -361,7 +372,7 @@ elsif ($in{'mode'} eq 'solaris-pkg' || $in{'mode'} eq 'sun-pkg') { $dir = $1; } - $setup = $in{'dir'} ? "./setup.sh '$in{'dir'}'" : "./setup.sh"; + $setup = $indir ? "./setup.sh '$indir'" : "./setup.sh"; print "Package Directory: $dir
",$text{'upgrade_setup'},"
\n"; print "
";
- $setup = $in{'dir'} ? "./setup.sh '$in{'dir'}'" : "./setup.sh";
+ $setup = $indir ? "./setup.sh '$indir'" : "./setup.sh";
&proc::safe_process_exec(
"cd $extract/webmin-$version && $setup", 0, 0,
STDOUT, undef, 1, 1);
@@ -508,7 +519,7 @@ else {
# Can delete the old root directory
system("rm -rf ".quotemeta($root_directory));
}
- elsif ($in{'dir'}) {
+ elsif ($indir) {
# Can delete the temporary source directory
system("rm -rf ".quotemeta($extract));
}