]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/pakfire.cgi
Add delay to pakfire.cgi to prevent pakfire run's twice.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / pakfire.cgi
index 28786fa78c7ae4ead6115e51a830406164f3d6fd..ca7a4ad4d918aa52f5f885edb91a5e85018b17e2 100644 (file)
@@ -44,8 +44,11 @@ $pakfiresettings{'INSPAKS'} = '';
 $pakfiresettings{'DELPAKS'} = '';
 $pakfiresettings{'AUTOUPDATE'} = 'off';
 $pakfiresettings{'AUTOUPGRADE'} = 'off';
+$pakfiresettings{'HEALTHCHECK'} = 'on';
 $pakfiresettings{'UUID'} = 'on';
 
+sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'pagerefresh'}</font></center>";&Header::closebox();}
+
 &Header::getcgihash(\%pakfiresettings);
 
 &General::readhash("${General::swroot}/main/settings", \%mainsettings);
@@ -59,15 +62,16 @@ if ($pakfiresettings{'ACTION'} eq 'install'){
        if ("$pakfiresettings{'FORCE'}" eq "on") {
                my $command = "/usr/local/bin/pakfire install --non-interactive --no-colors $pakfiresettings{'INSPAKS'} &>/dev/null &";
                system("$command");
-               sleep(2);
+               system("/bin/sleep 1");
        } else {
                &Header::openbox("100%", "center", "Abfrage");
        my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $pakfiresettings{'INSPAKS'}`;
                print <<END;
                <table><tr><td colspan='2'>$Lang::tr{'pakfire install package'}.$pakfiresettings{'INSPAKS'}.$Lang::tr{'pakfire possible dependency'}
-               <pre>           
+               <pre>
 END
                foreach (@output) {
+                 $_ =~ s/\\e\[[0-1]\;[0-9]+m//g;
                        print "$_\n";
                }
                print <<END;
@@ -98,15 +102,16 @@ END
        if ("$pakfiresettings{'FORCE'}" eq "on") {
                my $command = "/usr/local/bin/pakfire remove --non-interactive --no-colors $pakfiresettings{'DELPAKS'} &>/dev/null &";
                system("$command");
-               sleep(2);
+               system("/bin/sleep 1");
        } else {
                &Header::openbox("100%", "center", "Abfrage");
        my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $pakfiresettings{'DELPAKS'}`;
                print <<END;
                <table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'}.$pakfiresettings{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'}
-               <pre>           
+               <pre>
 END
                foreach (@output) {
+                 $_ =~ s/\\e\[[0-1]\;[0-9]+m//g;
                        print "$_\n";
                }
                print <<END;
@@ -133,22 +138,22 @@ END
        }
 
 } elsif ($pakfiresettings{'ACTION'} eq 'update') {
-       
-       system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null");
 
+       system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &");
+       system("/bin/sleep 1");
 } elsif ($pakfiresettings{'ACTION'} eq 'upgrade') {
-       
-       system("/usr/local/bin/pakfire upgrade -y --no-colors &>/dev/null");
-       
+       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'} == "on") {
+       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'} == "on") {
+
+       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");
@@ -168,6 +173,9 @@ $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'";
@@ -195,7 +203,7 @@ if ($return) {
                        </form>
                <tr><td colspan='2' align='left'><pre>
 END
-       my @output = `tail -20 /var/log/pakfire.log`;
+       my @output = `grep pakfire /var/log/messages | tail -20`;
        foreach (@output) {
                print "$_";
        }
@@ -207,6 +215,7 @@ END
        &Header::closebigbox();
        &Header::closepage();
        exit;
+       refreshpage();
 }
 
 my $core_release = `cat /opt/pakfire/db/core/mine 2>/dev/null`;
@@ -229,7 +238,7 @@ print <<END;
                                        $Lang::tr{'pakfire last package update'} $packages_update_age ago
                                        <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                <input type='hidden' name='ACTION' value='update' />
-                                               <input type='submit' value='Liste aktualisieren' /><br />
+                                               <input type='submit' value='$Lang::tr{'calamaris refresh list'}' /><br />
                                        </form>
                                <td align="center">
                                 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
@@ -242,17 +251,17 @@ END
                                        <input type='hidden' name='ACTION' value='upgrade' />
                                        <input type='image' alt='$Lang::tr{'upgrade'}' src='/images/document-save.png' />
                                 </form>
-               
+
                <tr><td colspan="2"><!-- Just an empty line -->&nbsp;
                <tr><td bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'pakfire available addons'}</b>
                                <td bgcolor='$color{'color20'}' align="center"><b>$Lang::tr{'pakfire installed addons'}</b>
                <tr><td align="center">
                        <p>$Lang::tr{'pakfire install description'}</p>
-                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>       
+                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                <select name="INSPAKS" size="10" multiple>
 END
                        &Pakfire::dblist("notinstalled", "forweb");
-               
+
 print <<END;
                                </select>
                                <br />
@@ -284,16 +293,19 @@ print <<END;
        <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                <table width='95%'>
                        <tr><td colspan='2' bgcolor='$color{'color20'}'><b>$Lang::tr{'basic options'}</b></td></tr>
-                       <tr><td align='left' width='40%'>$Lang::tr{'pakfire update daily'}</td><td align="left">
-          on <input type='radio' name='AUTOUPDATE' value='on' $checked{'AUTOUPDATE'}{'on'} />/
+                       <tr><td align='left' width='45%'>$Lang::tr{'pakfire update daily'}</td><td width="55%" align="left">
+          on <input type='radio' name='AUTOUPDATE' value='on' $checked{'AUTOUPDATE'}{'on'} /> |
           <input type='radio' name='AUTOUPDATE' value='off' $checked{'AUTOUPDATE'}{'off'} /> off </td></tr>
-                       <tr><td align='left' width='40%'>$Lang::tr{'pakfire core update auto'}</td><td align="left">
-          on <input type='radio' name='AUTOUPGRADE' value='on' $checked{'AUTOUPGRADE'}{'on'} />/
+                       <tr><td align='left' width='45%'>$Lang::tr{'pakfire core update auto'}</td><td align="left">
+          on <input type='radio' name='AUTOUPGRADE' value='on' $checked{'AUTOUPGRADE'}{'on'} /> |
           <input type='radio' name='AUTOUPGRADE' value='off' $checked{'AUTOUPGRADE'}{'off'} /> off </td></tr>
-                       <tr><td align='left' width='40%'>$Lang::tr{'pakfire register'}</td><td align="left">
-          on <input type='radio' name='UUID' value='on' $checked{'UUID'}{'on'} />/
+                       <tr><td align='left' width='45%'>$Lang::tr{'pakfire health check'}</td><td align="left">
+          on <input type='radio' name='HEALTHCHECK' value='on' $checked{'HEALTHCHECK'}{'on'} /> |
+          <input type='radio' name='HEALTHCHECK' value='off' $checked{'HEALTHCHECK'}{'off'} /> off </td></tr>          
+                       <tr><td align='left' width='45%'>$Lang::tr{'pakfire register'}</td><td align="left">
+          on <input type='radio' name='UUID' value='on' $checked{'UUID'}{'on'} /> |
           <input type='radio' name='UUID' value='off' $checked{'UUID'}{'off'} /> off </td></tr>
-                       <tr><td width='100%' colspan="2" align="center"><input type="submit" name="ACTION" value="$Lang::tr{'save'}" /></td></tr>
+                       <tr><td colspan="2" align="center"><input type="submit" name="ACTION" value="$Lang::tr{'save'}" /></td></tr>
                </table>
        </form>
 END