From ea03e5a3382a351ca6bf1cec2cc1966484d17c75 Mon Sep 17 00:00:00 2001 From: iliajie Date: Thu, 11 Aug 2022 22:40:35 +0300 Subject: [PATCH] Fix to consider var directory and bootscript upon upgrades --- setup.pl | 15 ++++++++++++++- setup.sh | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/setup.pl b/setup.pl index 3eca7a87d..6b178cb66 100755 --- a/setup.pl +++ b/setup.pl @@ -122,8 +122,17 @@ if ($upgrading) { open(VAR, "$config_directory/var-path"); chop($var_dir = ); $var_directory = $var_dir; + $ENV{'WEBMIN_VAR'} = $var_directory; close(VAR); + # Get current bootscript name + if (-r "$config_directory/bootscript-name") { + open(BOOTVAR, "$config_directory/bootscript-name"); + chop($bootscript = ); + close(BOOTVAR); + $bootscript ||= ($ENV{'bootscript'} || "webmin"); + } + # Force creation if non-existant mkdir($var_dir, 0755); @@ -189,7 +198,8 @@ else { } # Ask for log directory - print "Log file directory [/var/webmin]: "; + my $envvardir = $ENV{'var_dir'} || "/var/webmin"; + print "Log file directory [$envvardir]: "; if ($ENV{'var_dir'}) { $var_dir = $ENV{'var_dir'}; } @@ -376,6 +386,9 @@ else { open(VAR, ">$config_directory/var-path"); print VAR $var_dir,"\n"; close(VAR); + open(BOOTS, ">$config_directory/bootscript-name"); + print BOOTS $bootscript,"\n"; + close(BOOTS); print "Creating web server config files ..\n"; $ufile = "$config_directory/miniserv.users"; diff --git a/setup.sh b/setup.sh index b979c7dc8..b271450bc 100755 --- a/setup.sh +++ b/setup.sh @@ -143,6 +143,14 @@ if [ "$upgrading" = 1 ]; then # Get current var path var_dir=`cat $config_dir/var-path` + # Get current bootscript + if [ -r "$config_dir/bootscript-name" ]; then + bootscript=`cat $config_dir/bootscript-name` + if [ "$bootscript" = "" ]; then + bootscript="webmin" + fi + fi + # Force creation if non-existant mkdir -p $var_dir >/dev/null 2>&1 @@ -216,7 +224,11 @@ else fi # Ask for log directory - printf "Log file directory [/var/webmin]: " + envvardir="$var_dir" + if [ "$envvardir" = "" ]; then + envvardir=/var/webmin + fi + printf "Log file directory [$envvardir]: " if [ "$var_dir" = "" ]; then read var_dir fi @@ -484,6 +496,7 @@ else # Create webserver config file echo $perl > $config_dir/perl-path echo $var_dir > $config_dir/var-path + echo $bootscript > $config_dir/bootscript-name echo "Creating web server config files .." cfile=$config_dir/miniserv.conf echo "port=$port" >> $cfile