#!/usr/bin/perl
###############################################################################
# #
# IPFire.org - A linux based firewall #
# Copyright (C) 2007-2011 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");
system("/bin/sleep 1");
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
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 &");
system("/bin/sleep 1");
} elsif ($pakfiresettings{'ACTION'} eq 'upgrade') {
my $command = "/usr/local/bin/pakfire upgrade -y --no-colors &>/dev/null &";
system("$command");
system("/bin/sleep 1");
} 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");
}
&General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
}
&General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings);
my %selected=();
my %checked=();
$checked{'AUTOUPDATE'}{'off'} = '';
$checked{'AUTOUPDATE'}{'on'} = '';
$checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "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");
&Header::openbox("100%", "center", "Pakfire");
print <
END
if ( -e "/var/run/need_reboot") {
print "$Lang::tr{'needreboot'}! ";
print " "
}
print <$Lang::tr{'pakfire system state'}:
$Lang::tr{'pakfire core update level'}: $core_release
$Lang::tr{'pakfire last update'} $core_update_age $Lang::tr{'pakfire ago'}
$Lang::tr{'pakfire last serverlist update'} $server_update_age $Lang::tr{'pakfire ago'}
$Lang::tr{'pakfire last core list update'} $corelist_update_age $Lang::tr{'pakfire ago'}
$Lang::tr{'pakfire last package update'} $packages_update_age $Lang::tr{'pakfire ago'}
$Lang::tr{'pakfire available addons'}
$Lang::tr{'pakfire installed addons'}
$Lang::tr{'pakfire install description'}
$Lang::tr{'pakfire uninstall description'}
END
&Header::closebox();
&Header::openbox("100%", "center", "$Lang::tr{'settings'}");
print <
$Lang::tr{'basic options'}
$Lang::tr{'pakfire update daily'}
on |
off
$Lang::tr{'pakfire register'}
on |
off
END
&Header::closebox();
&Header::closebigbox();
&Header::closepage();