public function updateApplication($version)
{
if ($application = $this->applicationFileExists()) {
$tmp = Horde_Util::getTempFile();
$oldmode = fileperms($application);
$oldfp = fopen($application, 'r');
$newfp = fopen($tmp, 'w');
while ($line = fgets($oldfp)) {
$line = preg_replace('/public \\$version = \'[^\']*\';/', 'public \\$version = \'' . $version . '\';', $line);
fwrite($newfp, $line);
}
fclose($oldfp);
fclose($newfp);
chmod($tmp, $oldmode);
system("mv -f {$tmp} {$application}");
} elseif ($bundle = $this->bundleFileExists()) {
$tmp = Horde_Util::getTempFile();
$oldmode = fileperms($bundle);
$oldfp = fopen($bundle, 'r');
$newfp = fopen($tmp, 'w');
while ($line = fgets($oldfp)) {
$line = preg_replace('/const VERSION = \'[^\']*\';/', 'const VERSION = \'' . $version . '\';', $line);
fwrite($newfp, $line);
}
fclose($oldfp);
fclose($newfp);
chmod($tmp, $oldmode);
system("mv -f {$tmp} {$bundle}");
}
}