]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - html/cgi-bin/pakfire.cgi
Pakfire CGI ein bisl erweitert, Index CGI um die DIAL CGI erweitert -> Funktion teste...
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / pakfire.cgi
1 #!/usr/bin/perl
2 #
3 # IPFire CGIs
4 #
5 # This file is part of the IPFire Project
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
14 use strict;
15
16 # enable only the following on debugging purpose
17 use warnings;
18 use CGI::Carp 'fatalsToBrowser';
19
20 require '/var/ipfire/general-functions.pl';
21 require "${General::swroot}/lang.pl";
22 require "${General::swroot}/header.pl";
23 require "/opt/pakfire/lib/functions.pl";
24
25 my %pakfiresettings=();
26 my $errormessage = '';
27 my @instlist = `ls /opt/pakfire/cache`;
28 my $uninstall = 'yes';
29
30 &Header::showhttpheaders();
31
32 $pakfiresettings{'ACTION'} = '';
33 $pakfiresettings{'VALID'} = '';
34
35 $pakfiresettings{'INSPAKS'} = '';
36 $pakfiresettings{'DELPAKS'} = '';
37 $pakfiresettings{'AUTOUPDATE'} = '';
38
39 &Header::getcgihash(\%pakfiresettings);
40
41 &Header::openpage($Lang::tr{'pakfire configuration'}, 1);
42 &Header::openbigbox('100%', 'left', '', $errormessage);
43
44 if ($pakfiresettings{'ACTION'} eq 'install'){
45 print "Going to install $pakfiresettings{'INSPAKS'}";
46 system("/opt/pakfire/pakfire installi $pakfiresettings{'INSPAKS'}")
47 }elsif ($pakfiresettings{'ACTION'} eq 'remove'){
48 foreach (@instlist){
49 my @pakname = split(/-/,$_);
50 my $dependency = `grep "Dependencies.*$pakfiresettings{'DELPAKS'}" /opt/pakfire/db/meta/*$pakname[0]`;
51 if ($dependency){$errormessage = "We have depending Paket $pakname[0] nothing will be done.<br />";$uninstall='no';last;}else{$uninstall='yes';}
52 }
53 if ($uninstall eq 'yes'){
54 print "Going to uninstall $pakfiresettings{'DELPAKS'}";
55 system("/opt/pakfire/pakfire uninstalli $pakfiresettings{'DELPAKS'}")
56 }
57 } elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}")
58 {
59 &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
60 }
61
62 &General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings);
63
64 my %selected=();
65 my %checked=();
66
67 $checked{'AUTOUPDATE'}{'off'} = '';
68 $checked{'AUTOUPDATE'}{'on'} = '';
69 $checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "checked='checked'";
70
71 # DPC move error message to top so it is seen!
72 if ($errormessage) {
73 &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
74 print "<font class='base'>$errormessage&nbsp;</font>\n";
75 &Header::closebox();
76 }
77
78 &Header::openbox("100%", "center", "Pakfire");
79
80 print <<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>
85 END
86 &Pakfire::dblist("notinstalled", "forweb");
87
88 print <<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>
106 END
107 foreach (@instlist){
108 my @pakname = split(/-/,$_);
109 print "<option value='$pakname[0]'>$pakname[0]</option>";
110 }
111 print <<END;
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>
124 END
125
126 &Header::closebox();
127 &Header::closebigbox();
128 &Header::closepage();