Skip to content

Commit

Permalink
Adding overwrite option to the i18n extract task
Browse files Browse the repository at this point in the history
  • Loading branch information
Jelle Henkens committed May 25, 2012
1 parent af4a2ef commit 5656461
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
9 changes: 9 additions & 0 deletions lib/Cake/Console/Command/Task/ExtractTask.php
Expand Up @@ -302,6 +302,11 @@ public function getOptionParser() {
->addOption('exclude', array(
'help' => __d('cake_console', 'Comma separated list of directories to exclude.' .
' Any path containing a path segment with the provided values will be skipped. E.g. test,vendors')
))
->addOption('overwrite', array(
'boolean' => true,
'default' => false,
'help' => __d('cake_console', 'Always overwrite existing .pot files.')
));
}

Expand Down Expand Up @@ -537,6 +542,10 @@ protected function _store($domain, $header, $sentence) {
*/
protected function _writeFiles() {
$overwriteAll = false;
if (!empty($this->params['overwrite'])) {
$overwriteAll = true;
}

foreach ($this->_storage as $domain => $sentences) {
$output = $this->_writeHeader();
foreach ($sentences as $sentence => $header) {
Expand Down
22 changes: 22 additions & 0 deletions lib/Cake/Test/Case/Console/Command/Task/ExtractTaskTest.php
Expand Up @@ -399,4 +399,26 @@ public function testExtractModelValidationInPlugin() {
$pattern = '#Plugin/TestPlugin/Model/TestPluginPost.php:validation for field title#';
$this->assertNotRegExp($pattern, $result);
}


/**
* Test that the extract shell overwrites existing files with the overwrite parameter
*
* @return void
*/
public function testExtractOverwrite() {
$this->Task->interactive = false;

$this->Task->params['paths'] = CAKE . 'Test' . DS . 'test_app' . DS;
$this->Task->params['output'] = $this->path . DS;
$this->Task->params['overwrite'] = true;

file_put_contents($this->path . DS . 'default.pot', 'will be overwritten');
$this->assertTrue(file_exists($this->path . DS . 'default.pot'));
$original = file_get_contents($this->path . DS . 'default.pot');

$this->Task->execute();
$result = file_get_contents($this->path . DS . 'default.pot');
$this->assertNotEquals($original, $result);
}
}

0 comments on commit 5656461

Please sign in to comment.