X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=html%2Fcgi-bin%2Fpakfire.cgi;h=8f20d57767293835e1a036e177784ef73c016ed5;hp=84662a84cf0f3850ebca24592d277c70233dbc63;hb=19b01b74f9b9e7cb01943f6c118b45d1eced9b4c;hpb=986e08d996eadd906ecbe6c9ac8ad48aa78bd854
diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi
index 84662a84cf..8f20d57767 100644
--- a/html/cgi-bin/pakfire.cgi
+++ b/html/cgi-bin/pakfire.cgi
@@ -1,15 +1,23 @@
#!/usr/bin/perl
-#
-# IPFire CGIs
-#
-# This file is part of the IPFire Project
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) Eric Oberlander June 2002
-#
-# (c) Darren Critchley June 2003 - added real time clock setting, etc
-#
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see
+END + foreach (@output) { + $_ =~ s/\\[[0-1]\;[0-9]+m//g; + print "$_\n"; + } + print <+ $Lang::tr{'pakfire accept all'} + + + + + +END + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit; + } +} elsif ($pakfiresettings{'ACTION'} eq 'remove') { + + $pakfiresettings{'DELPAKS'} =~ s/\|/\ /g; + if ("$pakfiresettings{'FORCE'}" eq "on") { + my $command = "/usr/local/bin/pakfire remove --non-interactive --no-colors $pakfiresettings{'DELPAKS'} &>/dev/null &"; + system("$command"); + } else { + &Header::openbox("100%", "center", "Abfrage"); + my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $pakfiresettings{'DELPAKS'}`; + print < $Lang::tr{'pakfire uninstall package'}.$pakfiresettings{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'} + +END + foreach (@output) { + $_ =~ s/\\[[0-1]\;[0-9]+m//g; + print "$_\n"; + } + print <+ $Lang::tr{'pakfire accept all'} + + + + + +END + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit; + } + +} elsif ($pakfiresettings{'ACTION'} eq 'update') { + + system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &"); + +} elsif ($pakfiresettings{'ACTION'} eq 'upgrade') { + my $command = "/usr/local/bin/pakfire upgrade -y --no-colors &>/dev/null &"; + system("$command"); +} elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}") { + + if ($pakfiresettings{'AUTOUPDATE'} eq 'on') { + system("/usr/local/bin/pakfire enable updates >/dev/null 2>&1"); + } else { + system("/usr/local/bin/pakfire disable updates >/dev/null 2>&1"); + } + if ($pakfiresettings{'AUTOUPGRADE'} eq 'on') { + system("/usr/local/bin/pakfire enable upgrades >/dev/null 2>&1"); + } else { + system("/usr/local/bin/pakfire disable upgrades >/dev/null 2>&1"); + } + + &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings); } &General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings); - my %selected=(); my %checked=(); -$checked{'AUTOUPD'}{'off'} = ''; -$checked{'AUTOUPD'}{'on'} = ''; -$checked{'AUTOUPD'}{$pakfiresettings{'AUTOUPD'}} = "checked='checked'"; - -&Header::openpage($Lang::tr{'pakfire configuration'}, 1); - -&Header::openbigbox('100%', 'left', '', $errormessage); +$checked{'AUTOUPDATE'}{'off'} = ''; +$checked{'AUTOUPDATE'}{'on'} = ''; +$checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "checked='checked'"; +$checked{'AUTOUPGRADE'}{'off'} = ''; +$checked{'AUTOUPGRADE'}{'on'} = ''; +$checked{'AUTOUPGRADE'}{$pakfiresettings{'AUTOUPGRADE'}} = "checked='checked'"; +$checked{'HEALTHCHECK'}{'off'} = ''; +$checked{'HEALTHCHECK'}{'on'} = ''; +$checked{'HEALTHCHECK'}{$pakfiresettings{'HEALTHCHECK'}} = "checked='checked'"; +$checked{'UUID'}{'off'} = ''; +$checked{'UUID'}{'on'} = ''; +$checked{'UUID'}{$pakfiresettings{'UUID'}} = "checked='checked'"; # DPC move error message to top so it is seen! if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); print "$errormessage \n"; &Header::closebox(); +} + +my $return = `pidof pakfire`; +chomp($return); +if ($return) { + &Header::openbox( 'Waiting', 1, "" ); + print < + + + + $Lang::tr{'pakfire working'} + + + +END + my @output = `grep pakfire /var/log/messages | tail -20`; + foreach (@output) { + print "$_"; } + print <+ +END + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit; + refreshpage(); +} + +my $core_release = `cat /opt/pakfire/db/core/mine 2>/dev/null`; +chomp($core_release); +my $core_update_age = &General::age("/opt/pakfire/db/core/mine"); +my $corelist_update_age = &General::age("/opt/pakfire/db/lists/core-list.db"); +my $server_update_age = &General::age("/opt/pakfire/db/lists/server-list.db"); +my $packages_update_age = &General::age("/opt/pakfire/db/lists/packages_list.db"); -print "