Browse files

Fixing issues with ProjectTask and absolute paths.

Fixes #1720
  • Loading branch information...
1 parent 3dcee71 commit 2b20eb8999a3154b4b7b5b8ddb2d8fc66f7f89e2 @markstory markstory committed May 22, 2011
View
22 lib/Cake/Console/Command/Task/ProjectTask.php
@@ -49,23 +49,21 @@ public function execute() {
$project = $this->args[0];
}
- if ($project && isset($_SERVER['PWD'])) {
- $project = $_SERVER['PWD'] . DS . $project;
- }
-
while (!$project) {
$prompt = __d('cake_console', "What is the path to the project you want to bake?");
$project = $this->in($prompt, null, APP_PATH . 'myapp');
}
- if ($project) {
- $response = false;
- while ($response == false && is_dir($project) === true && file_exists($project . 'Config' . 'core.php')) {
- $prompt = __d('cake_console', '<warning>A project already exists in this location:</warning> %s Overwrite?', $project);
- $response = $this->in($prompt, array('y','n'), 'n');
- if (strtolower($response) === 'n') {
- $response = $project = false;
- }
+ if ($project && !Folder::isAbsolute($project) && isset($_SERVER['PWD'])) {
+ $project = $_SERVER['PWD'] . DS . $project;
+ }
+
+ $response = false;
+ while ($response == false && is_dir($project) === true && file_exists($project . 'Config' . 'core.php')) {
+ $prompt = __d('cake_console', '<warning>A project already exists in this location:</warning> %s Overwrite?', $project);
+ $response = $this->in($prompt, array('y','n'), 'n');
+ if (strtolower($response) === 'n') {
+ $response = $project = false;
}
}
View
14 lib/Cake/Test/Case/Console/Command/Task/ProjectTaskTest.php
@@ -110,6 +110,20 @@ public function testBake() {
}
/**
+ * test bake with an absolute path.
+ *
+ * @return void
+ */
+ public function testExecuteWithAbsolutePath() {
+ $this->Task->args[0] = TMP . 'tests' . DS . 'bake_test';
+ $this->Task->params['skel'] = CAKE . 'Console' . DS . 'templates' . DS . 'skel';
+ $this->Task->expects($this->at(0))->method('in')->will($this->returnValue('y'));
+ $this->Task->execute();
+
+ $this->assertTrue(is_dir($this->Task->args[0]), 'No project dir');
+ }
+
+/**
* test bake() method with -empty flag, directory creation and empty files.
*
* @return void

0 comments on commit 2b20eb8

Please sign in to comment.