protected function tearDown() { \Magento\Framework\System\Dirs::rm($this->_packPath); $reflection = new \ReflectionClass('Magento\\Framework\\Component\\ComponentRegistrar'); $paths = $reflection->getProperty('paths'); $paths->setAccessible(true); $paths->setValue($this->backupRegistrar); $paths->setAccessible(false); }
/** * Convert PEAR package to Magento package * * @param string $sourceFile Path to PEAR .tgz * @param bool|false|string $destFile Path to newly-created Magento .tgz, false to specify auto * @throws \Exception * @return string */ public function convertPearToMage($sourceFile, $destFile = false) { try { if (!file_exists($sourceFile)) { throw new \Exception("File doesn't exist: {$sourceFile}"); } $arc = $this->arc(); $tempDir = "tmp-" . basename($sourceFile) . uniqid(); $outDir = "out-" . basename($sourceFile) . uniqid(); $outDir = rtrim($outDir, "\\/"); \Magento\Framework\System\Dirs::mkdirStrict($outDir); \Magento\Framework\System\Dirs::mkdirStrict($tempDir); $result = $arc->unpack($sourceFile, $tempDir); if (!$result) { throw new \Exception("'{$sourceFile}' was not unpacked"); } $result = rtrim($result, "\\/"); $packageXml = $result . '/package.xml'; if (!file_exists($packageXml)) { throw new \Exception("No package.xml found inside '{$sourceFile}'"); } $reader = $this->oldPackageReader(); $data = file_get_contents($packageXml); $pearObject = $reader->parsePackage($data, $packageXml); $mageObject = $this->convertPackageObject($pearObject); if (!$mageObject->validate()) { throw new \Exception("Package validation failed.\n" . implode("\n", $mageObject->getErrors())); } /** * Calculate destination file if false */ if (false === $destFile) { $pathinfo = pathinfo($sourceFile); $destFile = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . '-converted'; if (isset($pathinfo['extension'])) { $destFile .= "." . $pathinfo['extension']; } } $target = new \Magento\Framework\Connect\Package\Target("target.xml"); $targets = $target->getTargets(); $mageObject->setTarget($target); $validRoles = array_keys($targets); $data = $pearObject->getFilelist(); $pathSource = dirname($pearObject->getPackageFile()) . '/' . $pearObject->getName() . "-" . $pearObject->getVersion(); $filesToDo = array(); foreach ($data as $file => $row) { $name = $row['name']; $role = $row['role']; if (!in_array($role, $validRoles)) { $role = 'mage'; } $baseName = ltrim($targets[$role], "\\/."); $baseName = rtrim($baseName, "\\/"); $sourceFile = $pathSource . '/' . $name; $targetFile = $outDir . '/' . $baseName . '/' . $name; if (file_exists($sourceFile)) { \Magento\Framework\System\Dirs::mkdirStrict(dirname($targetFile)); $copy = @copy($sourceFile, $targetFile); if (false === $copy) { throw new \Exception("Cannot copy '{$sourceFile}' to '{$targetFile}'"); } } $filesToDo[] = array('name' => $name, 'role' => $role); } $cwd = getcwd(); @chdir($outDir); foreach ($filesToDo as $fileToDo) { $mageObject->addContent($fileToDo['name'], $fileToDo['role']); } $mageObject->save(getcwd()); @chdir($cwd); $filename = $outDir . '/' . $mageObject->getReleaseFilename() . '.tgz'; if (@file_exists($destFile)) { @unlink($destFile); } \Magento\Framework\System\Dirs::mkdirStrict(dirname($destFile)); $copy = @copy($filename, $destFile); if (false === $copy) { throw new \Exception("Cannot copy '{$filename}' to '{$destFile}'"); } \Magento\Framework\System\Dirs::rm($tempDir); \Magento\Framework\System\Dirs::rm($outDir); } catch (\Exception $e) { throw $e; } return $destFile; }
public function tearDown() { \Magento\Framework\System\Dirs::rm($this->_varDir); }
/** * Package installation to FS * * @param \Magento\Framework\Connect\Package $package * @param string $file * @param \Magento\Framework\Connect\Config $configObj * @return void */ public function processInstallPackage($package, $file, $configObj) { $contents = $package->getContents(); $arc = $this->getArchiver(); $target = dirname($file) . '/' . $package->getReleaseFilename(); @mkdir($target, 0777, true); $tar = $arc->unpack($file, $target); $modeFile = $this->_getFileMode($configObj); $modeDir = $this->_getDirMode($configObj); $targetPath = rtrim($configObj->magento_root, "\\/"); foreach ($contents as $file) { $fileName = basename($file); $filePath = dirname($file); $source = $tar . '/' . $file; @mkdir($targetPath . '/' . $filePath, $modeDir, true); $dest = $targetPath . '/' . $filePath . '/' . $fileName; if (is_file($source)) { @copy($source, $dest); if ($modeFile) { @chmod($dest, $modeFile); } } else { @mkdir($dest, $modeDir); } } $packageXml = $tar . \Magento\Framework\Connect\Package\Reader::DEFAULT_NAME_PACKAGE; if (is_file($packageXml)) { $destDir = $targetPath . '/' . \Magento\Framework\Connect\Package::PACKAGE_XML_DIR; $destFile = $package->getReleaseFilename() . '.xml'; $dest = $destDir . '/' . $destFile; @copy($packageXml, $dest); @chmod($dest, $modeFile); } \Magento\Framework\System\Dirs::rm(array("-r", $target)); }
/** * Archives package. * * @return $this */ public function archivePackage() { $this->_pathToArchive = $this->_getArchivator()->pack($this->_temporaryPackageDir, $this->_namePackage . '.tgz', true); //delete temporary dir \Magento\Framework\System\Dirs::rm(array("-r", $this->_temporaryPackageDir)); return $this; }
protected function tearDown() { \Magento\Framework\System\Dirs::rm($this->_packPath); }
/** * Package installation to FS * @param \Magento\Framework\Connect\Package $package * @param string $file * @param Config $configObj * @return void * @throws \Exception */ public function processInstallPackage($package, $file, $configObj) { $contents = $package->getContents(); $arc = $this->getArchiver(); $target = dirname($file) . '/' . $package->getReleaseFilename(); @mkdir($target, 0777, true); $mode = $configObj->global_dir_mode; $tar = $arc->unpack($file, $target); $modeFile = $configObj->global_file_mode; $modeDir = $configObj->global_dir_mode; foreach ($contents as $file) { $fileName = basename($file); $filePath = dirname($file); $source = $tar . '/' . $file; $targetPath = rtrim($configObj->magento_root, "\\/"); @mkdir($targetPath . '/' . $filePath, $modeDir, true); $dest = $targetPath . '/' . $filePath . '/' . $fileName; if (is_file($source)) { @copy($source, $dest); if ($modeFile) { @chmod($dest, $modeFile); } } else { @mkdir($dest, $modeDir); } } \Magento\Framework\System\Dirs::rm(array("-r", $target)); }