php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/webmin/virtual-server/ |
files >> //usr/libexec/webmin/virtual-server/mass_upgrade.cgi |
#!/usr/bin/perl # Upgrade a bunch of scripts to their latest versions require './virtual-server-lib.pl'; &ReadParse(); $d = &get_domain($in{'dom'}); &can_edit_domain($d) && &can_edit_scripts() || &error($text{'edit_ecannot'}); &error_setup($text{'massg_err'}); @d = split(/\0/, $in{'d'}); @d || &error($text{'massg_enone'}); # Get the scripts being upgraded, and for each work out a new version @got = &list_domain_scripts($d); foreach $id (@d) { ($sinfo) = grep { $_->{'id'} eq $id } @got; if ($sinfo) { push(@sinfos, $sinfo); $script = &get_script($sinfo->{'name'}); $sinfo->{'deleted'} && &text('massg_edeleted', $script->{'desc'}); @vers = grep { &can_script_version($script, $_) } @{$script->{'versions'}}; @better = grep { &compare_versions($_, $sinfo->{'version'}, $script) > 0 } @vers; $ver = @better ? $better[$#better] : undef; $scriptmap{$sinfo->{'id'}} = $script; $vermap{$sinfo->{'id'}} = $ver; } } if ($in{'confirm'}) { # Do it &ui_print_unbuffered_header(&domain_in($d), $text{'massg_title'}, ""); # Upgrade each script, if a new version exists foreach $sinfo (@sinfos) { $script = $scriptmap{$sinfo->{'id'}}; $ver = $vermap{$sinfo->{'id'}}; $opts = $sinfo->{'opts'}; # Install needed packages &setup_script_packages($script, $d); &$first_print(&text('massg_doing', $script->{'desc'}, $ver)); if (&compare_versions($sinfo->{'version'}, $ver, $script) >= 0) { # Already got it &$second_print(&text('massscript_ever', $sinfo->{'version'})); next; } # Setup PHP version &$indent_print(); $phpvfunc = $script->{'php_vers_func'}; local $phpver; if (defined(&$phpvfunc)) { @vers = &$phpvfunc($d, $ver); $phpver = &setup_php_version($d, \@vers, $opts->{'path'}); if (!$phpver) { &$second_print(&text('scripts_ephpvers', join(" ", @vers))); next; } } if ($derr = &check_script_depends($script, $d, $ver, $sinfo, $phpver)) { # Failed depends &$second_print(&text('massscript_edep', $derr)); next; } # Install needed PHP modules &setup_script_requirements($d, $script, $ver, $phpver, $opts) || next; # Fetch needed files $ferr = &fetch_script_files($sinfo->{'dom'}, $ver,$opts, $sinfo, \%gotfiles); &error($ferr) if ($ferr); # Work out username and password $domuser = $sinfo->{'user'} || $d->{'user'}; $dompass = $sinfo->{'pass'} || $d->{'pass'}; # Go ahead and do it ($ok, $msg, $desc, $url) = &{$script->{'install_func'}}( $d, $ver, $opts, \%gotfiles, $sinfo, $domuser, $dompass); print $msg,"<br>\n"; &$outdent_print(); if ($ok) { # Worked .. record it &$second_print($text{'setup_done'}); &remove_domain_script($d, $sinfo); $newsinfo = &add_domain_script( $d, $sinfo->{'name'}, $ver, $opts, $desc, $url, $sinfo->{'user'}, $sinfo->{'pass'}); $sinfo->{'id'} = $newsinfo->{'id'}; } else { &$second_print($text{'scripts_failed'}); last if ($in{'fail'}); } # Clean up any temp files from this script &cleanup_tempnames(); } &run_post_actions(); &webmin_log("upgrade", "scripts", scalar(@d)); } else { # Ask first &ui_print_header(&domain_in($d), $text{'massg_title'}, ""); print "<center>\n"; print &ui_form_start("mass_upgrade.cgi", "post"); print &ui_hidden("dom", $in{'dom'}),"\n"; foreach $id (@d) { print &ui_hidden("d", $id),"\n"; } print &text('massg_rusure', scalar(@d)),"<p>\n"; print "<table>\n"; foreach $sinfo (@sinfos) { $script = $scriptmap{$sinfo->{'id'}}; $ver = $vermap{$sinfo->{'id'}}; print "<tr>\n"; print "<td>$script->{'desc'}</td>\n"; print "<td> - </td>\n"; if ($ver) { print "<td>",&text('massg_fromto', $sinfo->{'version'}, $ver),"</td>\n"; } else { print "<td>",&text('massg_stay', $sinfo->{'version'}),"</td>\n"; } print "</tr>\n"; } print "</table>\n"; print &ui_submit($text{'massg_ok'}, "confirm"),"<br>\n"; print &ui_form_end(); print "</center>\n"; } &ui_print_footer(@sinfos == 1 ? ( "edit_script.cgi?dom=$in{'dom'}&script=$sinfos[0]->{'id'}", $text{'scripts_ereturn'} ) : ( ), "list_scripts.cgi?dom=$in{'dom'}", $text{'scripts_return'}, &domain_footer_link($d));y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`