basic source dirs && general tarball fixup
[pharext/pharext] / src / pharext / Task / PeclFixup.php
index 08a1d942eaa7c7aabb5c078d67f46f81fa6420f1..33eb889c7900744e5350862a271f83cb26b6df29 100644 (file)
@@ -28,16 +28,25 @@ class PeclFixup implements Task
         * @throws \pahrext\Exception
         */
        public function run($verbose = false) {
+               if ($verbose !== false) {
+                       printf("Sanitizing PECL dir ...\n");
+               }
                $dirs = glob("{$this->source}/*", GLOB_ONLYDIR);
                $files = array_diff(glob("{$this->source}/*"), $dirs);
+               $check = array_reduce($files, function($r, $v) {
+                       return $v && fnmatch("package*.xml", basename($v));
+               }, true);
 
-               if (count($dirs) !== 1 || !count($files)) {
+               if (count($dirs) !== 1 || !$check) {
                        throw new Exception("Does not look like an extracted PECL dir: {$this->source}");
                }
 
                $dest = current($dirs);
 
                foreach ($files as $file) {
+                       if ($verbose) {
+                               printf("Moving %s into %s ...\n", basename($file), basename($dest));
+                       }
                        if (!rename($file, "$dest/" . basename($file))) {
                                throw new Exception;
                        }