mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
57 lines
1.9 KiB
Perl
Executable File
57 lines
1.9 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# change_os.cgi
|
|
# Change OS settings
|
|
|
|
require './webmin-lib.pl';
|
|
&ReadParse();
|
|
|
|
&lock_file("$config_directory/config");
|
|
if ($in{'update'}) {
|
|
# Automatically detect
|
|
%osinfo = &detect_operating_system();
|
|
$gconfig{'real_os_type'} = $osinfo{'real_os_type'};
|
|
$gconfig{'real_os_version'} = $osinfo{'real_os_version'};
|
|
$gconfig{'os_type'} = $osinfo{'os_type'};
|
|
$gconfig{'os_version'} = $osinfo{'os_version'};
|
|
}
|
|
elsif ($in{'type'} ne $gconfig{'real_os_type'} ||
|
|
$in{'version'} ne $gconfig{'real_os_version'} ||
|
|
$in{'itype'} ne $gconfig{'os_type'} ||
|
|
$in{'iversion'} ne $gconfig{'os_version'}) {
|
|
# Manually change
|
|
$gconfig{'real_os_type'} = $in{'type'};
|
|
$in{'version'} || &error($text{'os_eversion'});
|
|
$gconfig{'real_os_version'} = $in{'version'};
|
|
($os) = grep { $_->{'realtype'} eq $in{'type'} }
|
|
&list_operating_systems();
|
|
$gconfig{'os_type'} = $in{'itype'};
|
|
$in{'iversion'} || &error($text{'os_eiversion'});
|
|
$gconfig{'os_version'} = $in{'iversion'};
|
|
}
|
|
$gconfig{'path'} = join($path_separator, split(/[\r\n]+/, $in{'path'}));
|
|
$gconfig{'syspath'} = !$in{'syspath'};
|
|
if ($gconfig{'ld_env'}) {
|
|
$gconfig{'ld_path'} = join($path_separator,
|
|
split(/[\r\n]+/, $in{'ld_path'}));
|
|
}
|
|
&write_file("$config_directory/config", \%gconfig);
|
|
&unlock_file("$config_directory/config");
|
|
|
|
&lock_file($ENV{'MINISERV_CONFIG'});
|
|
&get_miniserv_config(\%miniserv);
|
|
foreach $e (keys %miniserv) {
|
|
delete($miniserv{$e}) if ($e =~ /^env_(\S+)$/ &&
|
|
$1 ne "WEBMIN_CONFIG" && $1 ne "WEBMIN_VAR");
|
|
}
|
|
for($i=0; defined($n = $in{"name_$i"}); $i++) {
|
|
next if (!$n);
|
|
$miniserv{'env_'.$n} = $in{"value_$i"}
|
|
if ($n ne "WEBMIN_CONFIG" && $n ne "WEBMIN_VAR");
|
|
}
|
|
$miniserv{'perllib'} = join(':', split(/\r?\n/, $in{'perllib'}));
|
|
&put_miniserv_config(\%miniserv);
|
|
&unlock_file($ENV{'MINISERV_CONFIG'});
|
|
|
|
&show_restart_page();
|
|
&webmin_log("os", undef, undef, \%in);
|