Browse Source

Revert "Changing folder create logic to use Folder->tree"

This reverts commit a60677070d41f3a1c7841e4ca24f6ee2658f3067.
AD7six 16 years ago
parent
commit
db6f2cec96
1 changed files with 14 additions and 9 deletions
  1. 14 9
      cake/console/libs/tasks/plugin.php

+ 14 - 9
cake/console/libs/tasks/plugin.php

@@ -60,8 +60,8 @@ class PluginTask extends Shell {
 	function execute() {
 		if (empty($this->params['skel'])) {
 			$this->params['skel'] = '';
-			if (is_dir(CAKE . 'console' . DS . 'templates' . DS . 'skel') === true) {
-				$this->params['skel'] = CAKE . 'console' . DS . 'templates' . DS . 'skel';
+			if (is_dir(CAKE_CORE_INCLUDE_PATH . DS . CAKE . 'console' . DS . 'templates' . DS . 'skel') === true) {
+				$this->params['skel'] = CAKE_CORE_INCLUDE_PATH . DS . CAKE . 'console' . DS . 'templates' . DS . 'skel';
 			}
 		}
 		$plugin = null;
@@ -139,15 +139,20 @@ class PluginTask extends Shell {
 		if (strtolower($looksGood) == 'y') {
 			$verbose = $this->in(__('Do you want verbose output?', true), array('y', 'n'), 'n');
 
-			$skel = CAKE_CORE_INCLUDE_PATH . DS . 'cake' . DS . 'console' . DS . 'templates' . DS . 'skel';
+			$skel = CAKE_CORE_INCLUDE_PATH . DS . dirname(CONSOLE_LIBS) . DS . 'templates' . DS . 'skel';
 			$Skel =& new Folder($skel);
-			$Folder =& new Folder($this->path . $pluginPath, true);
-			$dirs = array_reverse($Folder->tree($skel, array('plugin', 'tmp'), 'dir'));
-			foreach ($dirs as $dir) {
-				$dir = str_replace($skel, $this->path . $pluginPath, $dir);
-				if (!is_dir($dir)) {
-					new File($dir . DS . 'empty', true);
+			$Folder =& new Folder($this->path . $pluginPath);
+			$allFiles = $Skel->findRecursive();
+			$directories = array();
+			foreach($allFiles as $file) {
+				$dir = ltrim(str_replace($skel, '', dirname($file)), DS);
+				if (!$dir || preg_match('@^(tmp|plugins)@', $dir) || in_array($dir, $directories)) {
+					continue;
 				}
+				$dirPath = $this->path . $pluginPath . DS . $dir;
+				$Folder->create($dirPath);
+				$File =& new File($dirPath . DS . 'empty', true);
+				$directories[] = $dir;
 			}
 
 			if (strtolower($verbose) == 'y') {