$cgiparams{'INSPAKS'} = '';
$cgiparams{'DELPAKS'} = '';
-my $page_lock;
-
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(\%cgiparams);
if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) {
my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
- # Lock the page.
- $page_lock = "1";
&General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", @pkgs);
+ sleep(1);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
} elsif (($cgiparams{'ACTION'} eq 'remove') && (! -e $Pakfire::lockfile)) {
my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
- # Lock the page.
- $page_lock = "1";
&General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", @pkgs);
+ sleep(1);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
}
} elsif (($cgiparams{'ACTION'} eq 'update') && (! -e $Pakfire::lockfile)) {
- # Set variable to lock the page.
- $page_lock = "1";
&General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
+ sleep(1);
} elsif (($cgiparams{'ACTION'} eq 'upgrade') && (!-e $Pakfire::lockfile)) {
- # Lock the page.
- $page_lock = "1";
&General::system_background("/usr/local/bin/pakfire", "upgrade", "-y", "--no-colors");
+ sleep(1);
} elsif ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") {
$pakfiresettings{"TREE"} = $cgiparams{"TREE"};
# Update lists
&General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
+ sleep(1);
}
}
&Header::closebox();
}
-# Check if a page lock is required.
-if ($page_lock) {
- &Header::openbox('Waiting', 1, ,);
- print <<END;
- <table>
- <tr>
- <td>
- <img src='/images/indicator.gif' alt='$Lang::tr{'active'}' title='$Lang::tr{'active'}'>
- </td>
-
- <td>
- $Lang::tr{'pakfire working'}
- </td>
- </tr>
- </table>
-END
- &Header::closebox();
-
- # Infinite loop to lock the page until pakfire lockfile is present.
- while($page_lock) {
- unless (-e $Pakfire::lockfile) {
- sleep(1);
- } else {
- # Release page lock.
- undef($page_lock);
-
- # Break loop.
- last;
- }
- }
-
- # Perform page reload.
- print "<meta http-equiv='refresh' content='1;'>\n";
- exit;
-}
+# Check if pakfire is already running.
+#
+# The system backpipe command is safe, because no user input is computed.
+my $pid = `pidof pakfire`;
-# Check if pakfire is already running. In this case a lockfile is present.
-if (-e $Pakfire::lockfile) {
+if ($pid) {
&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='10;'>" );
print <<END;
<table>