#!/usr/bin/perl # # IPFire CGIs # # This file is part of the IPFire Project # # This code is distributed under the terms of the GPL # # use strict; # enable only the following on debugging purpose use warnings; use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; require "/opt/pakfire/lib/functions.pl"; my %pakfiresettings=(); my $errormessage = ''; &Header::showhttpheaders(); $pakfiresettings{'ACTION'} = ''; $pakfiresettings{'VALID'} = ''; $pakfiresettings{'INSPAKS'} = ''; $pakfiresettings{'DELPAKS'} = ''; $pakfiresettings{'AUTOUPDATE'} = 'off'; $pakfiresettings{'UUID'} = 'on'; &Header::getcgihash(\%pakfiresettings); &Header::openpage($Lang::tr{'pakfire configuration'}, 1); &Header::openbigbox('100%', 'left', '', $errormessage); if ($pakfiresettings{'ACTION'} eq 'install'){ $pakfiresettings{'INSPAKS'} =~ s/\|/\ /g; if ("$pakfiresettings{'FORCE'}" eq "on") { my $command = "/usr/local/bin/pakfire install --non-interactive $pakfiresettings{'INSPAKS'} &>/dev/null &"; system("$command"); sleep(2); } else { &Header::openbox("100%", "center", "Abfrage"); my @output = `/usr/local/bin/pakfire resolvedeps $pakfiresettings{'INSPAKS'}`; print <Sie maechten folgende Pakete installieren: "$pakfiresettings{'INSPAKS'}". Moeglicherweise haben diese Pakete Abhaengigkeiten, d.h. andere Pakete muessen zusaetzlich installiert werden. Dazu sehen sie unten eine Liste.
		
END
		foreach (@output) {
			print "$_\n";
		}
		print <
		Moechten Sie der Installation aller Pakete zustimmen?
		 
		
END &Header::closebox(); &Header::closebigbox(); &Header::closepage(); exit; } } elsif ($pakfiresettings{'ACTION'} eq 'remove') { } elsif ($pakfiresettings{'ACTION'} eq 'update') { system("/usr/local/bin/pakfire update --force"); } elsif ($pakfiresettings{'ACTION'} eq 'upgrade') { system("/usr/local/bin/pakfire upgrade -y"); } elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}") { &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("100%", "center", "Aktiv"); print < $Lang::tr{  Pakfire fuehrt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.
### TO BE CONTINUED.... WE HAVE TO BEAUTIFY THIS A LITTLE BIT :D
END
my @output = `tail /var/log/messages | grep pakfire`;
foreach (@output) {
	print "$_";
}
print <
	
END
  	### TO BE CONTINUED.... WE HAVE TO BEAUTIFY THIS A LITTLE BIT :D
	&Header::closebox();
	&Header::closebigbox();
	&Header::closepage();
	exit;
}

&Header::openbox("100%", "center", "Pakfire");

system("pakfire update &>dev/null");

print <
		Verfuegbare Addons:


Installierte Addons:
END &Pakfire::dblist("upgrade", "forweb"); print <


Automatische Updates taeglich ausfuehren: Registrierung am Master-Server:
END &Header::closebox(); &Header::closebigbox(); &Header::closepage();