public function testRecursiveCopyWithBlacklist() { $tmp = sys_get_temp_dir(); $basePath = $tmp . "/n98_testdir"; $folder1 = $basePath . "/folder1"; $folder2 = $basePath . "/folder2"; $file1 = $folder1 . "/file1.txt"; $ignoreMe = $folder1 . "/ignore.me"; $file2 = $folder2 . "/file2.txt"; $dest = sys_get_temp_dir() . "/n98_copy_dest"; @mkdir($folder1, 0777, true); @mkdir($folder2, 0777, true); touch($file1); touch($file2); $this->fileSystem->recursiveCopy($basePath, $dest, array('ignore.me')); $this->assertFileExists($dest . "/folder1/file1.txt"); $this->assertFileExists($dest . "/folder2/file2.txt"); $this->assertFileNotExists($dest . "/folder1/ignore.me"); //cleanup unlink($file1); unlink($file2); rmdir($folder1); rmdir($folder2); rmdir($basePath); unlink($dest . "/folder1/file1.txt"); unlink($dest . "/folder2/file2.txt"); rmdir($dest . "/folder1"); rmdir($dest . "/folder2"); rmdir($dest); }
protected function _fixComposerExtractionBug() { $filesystem = new Filesystem(); $mediaFolder = $this->config['installationFolder'] . '/media'; $wrongFolder = $this->config['installationFolder'] . '/_temp_demo_data/media'; if (is_dir($wrongFolder)) { $filesystem->recursiveCopy($wrongFolder, $mediaFolder); $filesystem->recursiveRemoveDirectory($wrongFolder); } }
/** * @param InputInterface $input * @param OutputInterface $output * @return bool */ public function downloadMagento(InputInterface $input, OutputInterface $output) { try { $package = $this->createComposerPackageByConfig($this->config['magentoVersionData']); $this->config['magentoPackage'] = $package; if (file_exists($this->config['installationFolder'] . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'Mage.php')) { $output->writeln('<error>A magento installation already exists in this folder </error>'); return false; } $composer = $this->getComposer($input, $output); $targetFolder = $this->getTargetFolderByType($composer, $package, $this->config['installationFolder']); $this->config['magentoPackage'] = $this->downloadByComposerConfig($input, $output, $package, $targetFolder, true); if ($this->isSourceTypeRepository($package->getSourceType())) { $filesystem = new \N98\Util\Filesystem(); $filesystem->recursiveCopy($targetFolder, $this->config['installationFolder'], array('.git', '.hg')); } else { $filesystem = new \Composer\Util\Filesystem(); $filesystem->copyThenRemove($this->config['installationFolder'] . '/_n98_magerun_download', $this->config['installationFolder']); } if (version_compare(PHP_VERSION, '5.4.0') >= 0) { // Patch installer $this->patchMagentoInstallerForPHP54($this->config['installationFolder']); } } catch (\Exception $e) { $output->writeln('<error>' . $e->getMessage() . '</error>'); return false; } return true; }
protected function _fixComposerExtractionBug() { $filesystem = new Filesystem(); foreach (array('/_temp_demo_data/media' => '/media', '/_temp_demo_data/skin' => '/skin') as $wrong => $right) { $wrongFolder = $this->config['installationFolder'] . $wrong; $rightFolder = $this->config['installationFolder'] . $right; if (is_dir($wrongFolder)) { $filesystem->recursiveCopy($wrongFolder, $rightFolder); $filesystem->recursiveRemoveDirectory($wrongFolder); } } }