]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - html/cgi-bin/pakfire.cgi
Kleine Fixes am Pakfire - brauche Binary.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / pakfire.cgi
CommitLineData
3ea75603
MT
1#!/usr/bin/perl
2#
78331e30 3# IPFire CGIs
3ea75603 4#
78331e30 5# This file is part of the IPFire Project
3ea75603
MT
6#
7# This code is distributed under the terms of the GPL
8#
9# (c) Eric Oberlander June 2002
10#
11# (c) Darren Critchley June 2003 - added real time clock setting, etc
12#
13
14use strict;
15
16# enable only the following on debugging purpose
1bd42c89
MT
17use warnings;
18use CGI::Carp 'fatalsToBrowser';
3ea75603 19
986e08d9 20require '/var/ipfire/general-functions.pl';
3ea75603
MT
21require "${General::swroot}/lang.pl";
22require "${General::swroot}/header.pl";
1bd42c89 23require "/opt/pakfire/lib/functions.pl";
3ea75603
MT
24
25my %pakfiresettings=();
26my $errormessage = '';
957363eb
CS
27my @instlist = `ls /opt/pakfire/cache`;
28my $uninstall = 'yes';
3ea75603
MT
29
30&Header::showhttpheaders();
31
32$pakfiresettings{'ACTION'} = '';
33$pakfiresettings{'VALID'} = '';
34
1bd42c89
MT
35$pakfiresettings{'INSPAKS'} = '';
36$pakfiresettings{'DELPAKS'} = '';
37$pakfiresettings{'AUTOUPDATE'} = '';
3ea75603
MT
38
39&Header::getcgihash(\%pakfiresettings);
40
1bd42c89
MT
41&Header::openpage($Lang::tr{'pakfire configuration'}, 1);
42&Header::openbigbox('100%', 'left', '', $errormessage);
3ea75603 43
957363eb
CS
44if ($pakfiresettings{'ACTION'} eq 'install'){
45print "Going to install $pakfiresettings{'INSPAKS'}";
46system("/opt/pakfire/pakfire installi $pakfiresettings{'INSPAKS'}")
47}elsif ($pakfiresettings{'ACTION'} eq 'remove'){
48foreach (@instlist){
49my @pakname = split(/-/,$_);
50my $dependency = `grep "Dependencies.*$pakfiresettings{'DELPAKS'}" /opt/pakfire/db/meta/*$pakname[0]`;
51if ($dependency){$errormessage = "We have depending Paket $pakname[0] nothing will be done.<br />";$uninstall='no';last;}else{$uninstall='yes';}
52}
53if ($uninstall eq 'yes'){
54print "Going to uninstall $pakfiresettings{'DELPAKS'}";
55system("/opt/pakfire/pakfire uninstalli $pakfiresettings{'DELPAKS'}")
1bd42c89 56}
1bd42c89
MT
57} elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}")
58{
59 &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
3ea75603
MT
60}
61
62&General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings);
63
3ea75603
MT
64my %selected=();
65my %checked=();
66
1bd42c89
MT
67$checked{'AUTOUPDATE'}{'off'} = '';
68$checked{'AUTOUPDATE'}{'on'} = '';
69$checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "checked='checked'";
3ea75603
MT
70
71# DPC move error message to top so it is seen!
72if ($errormessage) {
73 &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
74 print "<font class='base'>$errormessage&nbsp;</font>\n";
75 &Header::closebox();
76 }
77
1bd42c89
MT
78&Header::openbox("100%", "center", "Pakfire");
79
80print <<END;
81 <table width='100%'>
82 <tr><td width='40%' align="center">Verfuegbare Addons:<br />
83 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
84 <select name="INSPAKS" size="10" multiple>
85END
86 &Pakfire::dblist("notinstalled", "forweb");
87
88print <<END;
89 </select>
90 </td>
91 <td width='20%' align="center">
92 <input type='hidden' name='ACTION' value='install' />
93 <input type='image' alt='$Lang::tr{'install'}' src='/images/list-add.png' />
94 </form><br />
95
96 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
97 <input type='submit' value='Liste aktualisieren' /><br />
98 </form>
99
100 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
101 <input type='hidden' name='ACTION' value='remove' />
102 <input type='image' alt='$Lang::tr{'remove'}' src='/images/list-remove.png' />
103 </td>
104 <td width='40%' align="center">Installierte Addons:<br />
105 <select name="DELPAKS" size="10" multiple>
957363eb
CS
106END
107foreach (@instlist){
108my @pakname = split(/-/,$_);
109print "<option value='$pakname[0]'>$pakname[0]</option>";
110}
111print <<END;
1bd42c89
MT
112 </select>
113 </table></form>
114 <br /><hr /><br />
115 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
116 <table width='100%'>
117 <tr><td width='40%' align="right">Automatische Updates taeglich ausfuehren:
118 <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} />
119 <td width='40%' align="right">Test:
120 <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} />
121 <tr><td width='100%' colspan="4" align="right"><input type="submit" name="ACTION" value="$Lang::tr{'save'}" />
122 </table>
123 </form>
124END
125
3ea75603 126&Header::closebox();
3ea75603 127&Header::closebigbox();
3ea75603 128&Header::closepage();