Horde_Release_Sentinel::replaceChanges PHP Method

replaceChanges() public method

Replace the current sentinel in the CHANGES file in case it exists.
public replaceChanges ( string $version ) : null
$version string Version string that should be added.
return null
    public function replaceChanges($version)
    {
        if ($changes = $this->changesFileExists()) {
            $tmp = Horde_Util::getTempFile();
            $oldfp = fopen($changes, 'r');
            $newfp = fopen($tmp, 'w');
            $version = 'v' . $version;
            $counter = 0;
            while ($line = fgets($oldfp)) {
                if ($counter < 2) {
                    $counter++;
                } else {
                    if ($counter == 2) {
                        fwrite($newfp, str_repeat('-', strlen($version)) . "\n{$version}\n" . str_repeat('-', strlen($version)) . "\n");
                        $counter++;
                    } else {
                        fwrite($newfp, $line);
                    }
                }
            }
            fclose($oldfp);
            fclose($newfp);
            system("mv -f {$tmp} {$changes}");
        }
    }

Usage Example

示例#1
0
    public function testReplaceSentinel()
    {
        $tmp_dir = $this->getTemporaryDirectory();
        $sentinel = new Horde_Release_Sentinel($tmp_dir);
        mkdir($tmp_dir . '/docs');
        file_put_contents($tmp_dir . '/docs/CHANGES', "---\nOLD\n---\nTEST");
        $sentinel->replaceChanges('1.0.0');
        $this->assertEquals('------
v1.0.0
------
TEST', file_get_contents($tmp_dir . '/docs/CHANGES'));
    }