From: Gunnar Wrobel Date: Wed, 30 Jun 2010 06:37:50 +0000 (+0200) Subject: Merged. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=3a7180a8dcf69e142800e1d79d0f9c20371b55f3;p=horde.git Merged. --- diff --git a/framework/Qc/script/horde-quality-control.php b/framework/Qc/script/horde-quality-control.php new file mode 100755 index 000000000..dc2cb6b3b --- /dev/null +++ b/framework/Qc/script/horde-quality-control.php @@ -0,0 +1,107 @@ +#!/usr/bin/env php + 'store_true') + ), +); +$parser = new Horde_Argv_Parser( + array( + 'optionList' => $options, + 'usage' => '%prog ' . _("[options] PACKAGE_PATH") + ) +); +list($opts, $args) = $parser->parseArgs(); + +if (empty($args[0])) { + echo "Please specify the path to the package you want to release!\n\n"; + $parser->printUsage(STDERR); + exit(1); +} + +$package_path = $args[0]; +if (!is_dir($package_path)) { + printf("%s specifies no directory!\n", $package_path); + exit(1); +} + +$package_file = $package_path . '/package.xml'; + +if (!file_exists($package_file)) { + printf("There is no package.xml at %s!\n", $package_path); + exit(1); +} + +$package = PEAR_PackageFileManager2::importOptions( + $package_file, + array( + 'packagedirectory' => $package_path, + 'filelistgenerator' => 'file', + 'clearcontents' => false, + 'clearchangelog' => false, + 'simpleoutput' => true, + 'ignore' => array('*~', 'conf.php', 'CVS/*'), + 'include' => '*', + 'dir_roles' => + array( + 'lib' => 'php', + 'doc' => 'doc', + 'example' => 'doc', + 'script' => 'script', + 'test' => 'test', + 'migration' => 'data', + ), + ) +); + +$package->generateContents(); + +/** + * This is required to clear the + * section. + */ +$package->setPackageType('php'); + +$contents = $package->getContents(); +$files = $contents['dir']['file']; + +foreach ($files as $file) { + $components = explode('/', $file['attribs']['name'], 2); + switch ($components[0]) { + case 'doc': + case 'example': + case 'lib': + case 'test': + $package->addInstallAs( + $file['attribs']['name'], $components[1] + ); + break; + case 'migration': + $components = explode('/', $components[1]); + array_splice($components, count($components) - 1, 0, 'migration'); + $package->addInstallAs( + $file['attribs']['name'], implode('/', $components) + ); + break; + case 'script': + $filename = basename($file['attribs']['name']); + if (substr($filename, strlen($filename) - 4)) { + $filename = substr($filename, 0, strlen($filename) - 4); + } + $package->addInstallAs( + $file['attribs']['name'], $filename + ); + break; + } +} + +if (!empty($opts['update_packagexml'])) { + $package->writePackageFile(); +} else { + $package->debugPackageFile(); +}