本文整理汇总了PHP中PEAR_PackageFileManager2::setReleaseStability方法的典型用法代码示例。如果您正苦于以下问题:PHP PEAR_PackageFileManager2::setReleaseStability方法的具体用法?PHP PEAR_PackageFileManager2::setReleaseStability怎么用?PHP PEAR_PackageFileManager2::setReleaseStability使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PEAR_PackageFileManager2
的用法示例。
在下文中一共展示了PEAR_PackageFileManager2::setReleaseStability方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: main
/**
* Main entrypoint of the task
*/
function main()
{
$pkg = new PEAR_PackageFileManager2();
$e = $pkg->setOptions(array('baseinstalldir' => 'prado', 'packagedirectory' => $this->pkgdir, 'pathtopackagefile' => $this->pkgdir, 'filelistgenerator' => 'file', 'simpleoutput' => true, 'ignore' => array(), 'dir_roles' => array('docs' => 'doc', 'examples' => 'doc', 'framework' => 'php', 'framework/js' => 'doc', 'framework/3rdParty' => 'doc'), 'exceptions' => array('requirements.php' => 'doc')));
// PEAR error checking
if (PEAR::isError($e)) {
die($e->getMessage());
}
$pkg->setPackage($this->package);
$pkg->setSummary($this->summary);
$pkg->setDescription($this->pkgdescription);
$pkg->setChannel($this->channel);
$pkg->setReleaseStability($this->state);
$pkg->setAPIStability($this->state);
$pkg->setReleaseVersion($this->version);
$pkg->setAPIVersion($this->version);
$pkg->setLicense($this->license);
$pkg->setNotes($this->notes);
$pkg->setPackageType('php');
$pkg->setPhpDep('5.0.0');
$pkg->setPearinstallerDep('1.4.2');
$pkg->addRelease();
$pkg->addMaintainer('lead', 'qxue', 'Qiang (Charlie) Xue', 'qiang.xue@gmail.com');
$test = $pkg->generateContents();
$e = $pkg->writePackageFile();
if (PEAR::isError($e)) {
echo $e->getMessage();
}
}
示例2: execute
protected function execute($arguments = array(), $options = array())
{
// Remove E_STRICT and E_DEPRECATED from error_reporting
error_reporting(error_reporting() & ~(E_STRICT | E_DEPRECATED));
if (empty($options['channel'])) {
$options['channel'] = opPluginManager::getDefaultPluginChannelServerName();
}
require_once 'PEAR/PackageFileManager2.php';
$pluginName = $arguments['name'];
$pluginDirectory = sfConfig::get('sf_plugins_dir') . '/' . $pluginName . '/';
$info = $this->getPluginManager($options['channel'])->getPluginInfo($pluginName);
if (!$info) {
$info = array('n' => $pluginName, 'c' => $options['channel'], 'l' => 'Apache', 's' => $pluginName, 'd' => $pluginName);
}
$packageXml = new PEAR_PackageFileManager2();
$packageOptions = array('packagedirectory' => $pluginDirectory, 'filelistgenerator' => 'file', 'baseinstalldir' => '/');
$e = $packageXml->setOptions($packageOptions);
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
$packageXml->_options['roles'] = array('*' => 'data');
$maintainers = $this->getPluginManager()->getPluginMaintainer($pluginName);
foreach ($maintainers as $maintainer) {
$packageXml->addMaintainer($maintainer['r'], $maintainer['h'], $maintainer['n'], '');
}
$packageXml->setPackage($pluginName);
$packageXml->setChannel($options['channel']);
$packageXml->setReleaseVersion($arguments['version']);
$packageXml->setReleaseStability($arguments['stability']);
$packageXml->setApiVersion($arguments['version']);
$packageXml->setApiStability($arguments['stability']);
$packageXml->setNotes($arguments['note']);
$packageXml->generateContents();
$packageXml->setPackageType('php');
$packageXml = $this->setDpendencies($packageXml, $pluginDirectory);
if (isset($info['l'])) {
$packageXml->setLicense($info['l']);
}
if (isset($info['s'])) {
$packageXml->setSummary($info['s']);
}
if (isset($info['d'])) {
$packageXml->setDescription($info['d']);
}
$e = $packageXml->writePackageFile();
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
}
示例3: execute
protected function execute($arguments = array(), $options = array())
{
// Remove E_STRICT and E_DEPRECATED from error_reporting
error_reporting(error_reporting() & ~(E_STRICT | E_DEPRECATED));
require_once 'PEAR/PackageFileManager2.php';
$pluginName = $arguments['name'];
$info = $this->getPluginManager()->getPluginInfo($pluginName);
if (!$info) {
$info = array('n' => $pluginName, 'c' => opPluginManager::OPENPNE_PLUGIN_CHANNEL, 'l' => 'Apache', 's' => $pluginName, 'd' => $pluginName);
}
$packageXml = new PEAR_PackageFileManager2();
$options = array('packagedirectory' => sfConfig::get('sf_plugins_dir') . '/' . $pluginName . '/', 'filelistgenerator' => 'file', 'baseinstalldir' => '/');
$e = $packageXml->setOptions($options);
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
$packageXml->_options['roles'] = array('*' => 'data');
$maintainers = $this->getPluginManager()->getPluginMaintainer($pluginName);
foreach ($maintainers as $maintainer) {
$packageXml->addMaintainer($maintainer['r'], $maintainer['h'], $maintainer['n'], '');
}
$packageXml->setPackage($pluginName);
$packageXml->setChannel(opPluginManager::OPENPNE_PLUGIN_CHANNEL);
$packageXml->setReleaseVersion($arguments['version']);
$packageXml->setReleaseStability($arguments['stability']);
$packageXml->setApiVersion($arguments['version']);
$packageXml->setApiStability($arguments['stability']);
$packageXml->setNotes($arguments['note']);
$packageXml->setPhpDep('5.2.3');
$packageXml->setPearinstallerDep('1.4.0');
$packageXml->addPackageDepWithChannel('package', 'symfony', 'pear.symfony-project.com', '1.2.0');
$packageXml->generateContents();
$packageXml->setPackageType('php');
if (isset($info['l'])) {
$packageXml->setLicense($info['l']);
}
if (isset($info['s'])) {
$packageXml->setSummary($info['s']);
}
if (isset($info['d'])) {
$packageXml->setDescription($info['d']);
}
$e = $packageXml->writePackageFile();
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
}
示例4: array
* Creates the package.xml file needed for distribution.
*
* Use php PackageManager.php to test output on cli,
* php PackageManager.php make to really generate package.xml
*/
require_once 'PEAR/PackageFileManager2.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$packagexml = new PEAR_PackageFileManager2();
$e = $packagexml->setOptions(array('clearcontents' => true, 'baseinstalldir' => 'SQLI', 'packagedirectory' => '.', 'dir_roles' => array('scripts' => 'script', 'tests' => 'test', 'CodeSniffer/Standards/Generic/Reports' => 'php', 'CodeSniffer/Standards/GN/Reports' => 'php', 'CodeSniffer/Standards/GNNew/Reports' => 'php', 'CodeSniffer/Standards/ZF/Reports' => 'php', 'CodeSniffer/Standards/Symfony/Reports' => 'php', 'CodeSniffer/Standards/Generic/Tests' => 'test', 'CodeSniffer/Standards/GN/Tests' => 'test', 'CodeSniffer/Standards/GNNew/Tests' => 'test', 'CodeSniffer/Standards/ZF/Tests' => 'test', 'CodeSniffer/Standards/Symfony/Tests' => 'test'), 'installexceptions' => array('scripts/sqlics.dist' => '/', 'scripts/sqlics.bat.dist' => '/')));
$packagexml->setPackage('SQLI_CodeSniffer');
$packagexml->setSummary('SQLI extension to PHP_CodeSniffer');
$packagexml->setDescription('SQLI_CodeSniffer extends PHP_CodeSniffer to add violation codes and configurable severities and messages');
$packagexml->setUri('http://www.assembla.com/spaces/sqlics/documents');
$packagexml->setAPIVersion('0.4.0dev1');
$packagexml->setReleaseVersion('0.4.0dev1');
$packagexml->setReleaseStability('devel');
$packagexml->setAPIStability('devel');
$packagexml->setNotes("This version adds/recovers some compatibility with PHP_CodeSniffer : sniffers' interface, tests.");
$packagexml->setPackageType('php');
// this is a PEAR-style php script package
$packagexml->setPhpDep('5.1.2');
$packagexml->setPearinstallerDep('1.4.0b1');
$packagexml->addPackageDepWithChannel('package', 'PHP_CodeSniffer', 'pear.php.net', '1.2.0RC1');
$packagexml->addMaintainer('lead', 'blacksun', 'Gabriele Santini', 'gsantini@sqli.com');
$packagexml->setLicense('New BSD License', 'http://www.opensource.org/licenses/bsd-license.php');
$packagexml->addRelease();
// set up a release section
$packagexml->setOSInstallCondition('windows');
$packagexml->addReplacement('scripts/sqlics.bat.dist', 'pear-config', '@php_bin@', 'php_bin');
$packagexml->addReplacement('scripts/sqlics.bat.dist', 'pear-config', '@php_dir@', 'php_dir');
$packagexml->addReplacement('scripts/sqlics.bat.dist', 'pear-config', '@bin_dir@', 'bin_dir');
示例5: array
<?php
error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT);
require_once "PEAR/PackageFileManager2.php";
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$packagexml = new PEAR_PackageFileManager2();
$packagexml->setOptions(array("outputdirectory" => ".", "filelistgenerator" => "file", "packagefile" => "package_pman.xml", "packagedirectory" => "output/", "baseinstalldir" => "php.net/", "simpleoutput" => true, "roles" => array("sh" => "script"), "dir_roles" => array("man3" => "doc"), "ignore" => array("index.sqlite", "man3/DomDocument.xinclude.3.gz")));
$packagexml->setPackage("pman");
$packagexml->setSummary("PHP Unix manual pages");
$packagexml->setDescription("Unix manual pages of the PHP documentations from php.net.");
$packagexml->setChannel("doc.php.net");
$packagexml->setAPIVersion("1.0.0");
$packagexml->setReleaseVersion(date("Y.m.d"));
$packagexml->setReleaseStability("stable");
$packagexml->setAPIStability("stable");
$packagexml->setLicense("Creative Commons Attribution 3.0", "http://creativecommons.org/licenses/by/3.0/");
$packagexml->setNotes("New release \\o/");
$packagexml->setPackageType("php");
$packagexml->addRelease();
$packagexml->setPhpDep("5.0.0");
$packagexml->setPearinstallerDep("1.9.0");
$packagexml->addExtensionDep("required", "zlib");
$packagexml->addMaintainer("lead", "phpdoc", "The PHP Documentation team", "phpdoc@lists.php.net");
rename("output/php-functions", "output/man3");
copy(__DIR__ . "/pman.sh", "output/pman.sh");
$packagexml->addReplacement("pman.sh", "pear-config", "@doc_dir@", "doc_dir");
$packagexml->addInstallAs("pman.sh", "pman");
$packagexml->generateContents();
$packagexml->writePackageFile();
rename("output/pman.sh", "pman.sh");
rename("output/man3", "man3");
示例6: array
<?php
error_reporting(E_ALL & ~E_DEPRECATED);
require_once 'PEAR/PackageFileManager2.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$packagexml = new PEAR_PackageFileManager2();
$packagexml->setOptions(array('baseinstalldir' => '/', 'simpleoutput' => true, 'packagedirectory' => './', 'filelistgenerator' => 'file', 'ignore' => array('runTests.php', 'generatePackage.php', 'phpunit-bootstrap.php', 'phpunit.xml', 'README', 'coverage*'), 'dir_roles' => array('tests' => 'test', 'examples' => 'doc')));
$packagexml->setPackage('HTTP_OAuth');
$packagexml->setSummary('PEAR implementation of the OAuth 1.0a specification');
$packagexml->setDescription('Allows the use of the consumer and provider angles of the OAuth 1.0a specification');
$packagexml->setChannel('pear.php.net');
$packagexml->setAPIVersion('0.2.0');
$packagexml->setReleaseVersion('0.2.3');
$packagexml->setReleaseStability('alpha');
$packagexml->setAPIStability('alpha');
$packagexml->setNotes('* Fixed GH issue #10. don\'t use reset() to get the first array value
* Disabled E_DEPRECTED error logging when creating packages
');
$packagexml->setPackageType('php');
$packagexml->addRelease();
$packagexml->detectDependencies();
$packagexml->addMaintainer('lead', 'jeffhodsdon', 'Jeff Hodsdon', 'jeffhodsdon@gmail.com');
$packagexml->addMaintainer('lead', 'shupp', 'Bill Shupp', 'shupp@php.net');
$packagexml->setLicense('New BSD License', 'http://www.opensource.org/licenses/bsd-license.php');
$packagexml->setPhpDep('5.1.2');
$packagexml->setPearinstallerDep('1.4.0');
$packagexml->addPackageDepWithChannel('required', 'PEAR', 'pear.php.net', '1.4.0');
$packagexml->addPackageDepWithChannel('required', 'HTTP_Request2', 'pear.php.net', '0.5.1');
$packagexml->addPackageDepWithChannel('optional', 'Log', 'pear.php.net');
$packagexml->addPackageDepWithChannel('optional', 'Cache_Lite', 'pear.php.net');
$packagexml->addExtensionDep('required', 'date');
示例7: array
$ignore = array('makepackage.php', '*.tgz', 'tests/', '.svn/', 'build.xml', 'config.elevforeningen.php');
$postinstall_file = 'elevforeningen.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$pfm = new PEAR_PackageFileManager2();
$pfm->setOptions(array('baseinstalldir' => '/', 'filelistgenerator' => 'file', 'packagedirectory' => dirname(__FILE__) . '/src', 'packagefile' => 'package.xml', 'ignore' => $ignore, 'dir_roles' => array('www' => 'web'), 'simpleoutput' => true, 'addhiddenfiles' => true));
$pfm->setPackage('VIH_Elevforeningen');
$pfm->setSummary('VIH');
$pfm->setDescription('VIH');
$pfm->setUri('http://localhost/');
$pfm->setLicense('LGPL License', 'http://www.gnu.org/licenses/lgpl.html');
$pfm->addMaintainer('lead', 'lsolesen', 'Lars Olesen', 'lars@legestue.net');
$pfm->setPackageType('php');
$pfm->setAPIVersion($version);
$pfm->setReleaseVersion($version);
$pfm->setAPIStability('beta');
$pfm->setReleaseStability('stable');
$pfm->setNotes($notes);
$pfm->addRelease();
$pfm->resetUsesRole();
$pfm->addUsesRole('web', 'Role_Web', 'pearified.com');
$pfm->addPackageDepWithChannel('required', 'Role_Web', 'pearified.com', '1.1.1');
// $pfm->addGlobalReplacement('package-info', '@package-version@', 'version');
$pfm->addReplacement($postinstall_file, 'pear-config', '@php-dir@', 'php_dir');
$pfm->addReplacement($postinstall_file, 'pear-config', '@web-dir@', 'web_dir');
$pfm->addReplacement($postinstall_file, 'pear-config', '@data-dir@', 'data_dir');
$pfm->clearDeps();
$pfm->setPhpDep('5.2.0');
$pfm->setPearinstallerDep('1.5.4');
$pfm->addPackageDepWithChannel('required', 'MDB2', 'pear.php.net', '2.4.0');
$pfm->addPackageDepWithChannel('required', 'MDB2_Driver_mysql', 'pear.php.net', '1.4.0');
$pfm->addPackageDepWithChannel('required', 'Validate', 'pear.php.net', '0.7.0');
示例8: array
$releaseStability = 'stable';
$apiVersion = '1.0.0';
$apiStability = 'stable';
$notes = 'The first release of Piece_Unity_Component_ContentLength.';
$package = new PEAR_PackageFileManager2();
$package->setOptions(array('filelistgenerator' => 'file', 'changelogoldtonew' => false, 'simpleoutput' => true, 'baseinstalldir' => '/', 'packagefile' => 'package.xml', 'packagedirectory' => '.', 'ignore' => array('package.php')));
$package->setPackage('Piece_Unity_Component_ContentLength');
$package->setPackageType('php');
$package->setSummary('An output filter which sends a Content-Legnth header. This filter must be added first.');
$package->setDescription('An output filter which sends a Content-Legnth header. This filter must be added first.');
$package->setChannel('pear.piece-framework.com');
$package->setLicense('BSD License (revised)', 'http://www.opensource.org/licenses/bsd-license.php');
$package->setAPIVersion($apiVersion);
$package->setAPIStability($apiStability);
$package->setReleaseVersion($releaseVersion);
$package->setReleaseStability($releaseStability);
$package->setNotes($notes);
$package->setPhpDep('4.3.0');
$package->setPearinstallerDep('1.4.3');
$package->addPackageDepWithChannel('required', 'Piece_Unity', 'pear.piece-framework.com', '1.0.0');
$package->addMaintainer('lead', 'iteman', 'KUBO Atsuhiro', 'iteman@users.sourceforge.net');
$package->addGlobalReplacement('package-info', '@package_version@', 'version');
$package->generateContents();
if (array_key_exists(1, $_SERVER['argv']) && $_SERVER['argv'][1] == 'make') {
$package->writePackageFile();
} else {
$package->debugPackageFile();
}
exit;
/*
* Local Variables:
示例9: main
/**
* Main entry point for d51pearpkg2 task
*/
public function main()
{
$package = new PEAR_PackageFileManager2();
$this->_initOptions();
$package->setOptions($this->_options);
$package->setPackage($this->_name->__toString());
$package->setSummary($this->_summary->__toString());
$desc = preg_replace("/^({$this->_description->indention_type}{{$this->_description->indentions_to_remove}}|\t)+/m", '', $this->_description->__toString());
$package->setDescription($desc);
$package->setChannel($this->_channel->__toString());
$package->setAPIVersion($this->_version->api);
$package->setReleaseVersion($this->_version->release);
$package->setAPIStability($this->_stability->api);
$package->setReleaseStability($this->_stability->release);
// TODO: allow different types
$package->setPackageType('php');
$package->addRelease();
if ($this->_dependencies->php !== false) {
$package->setPhpDep($this->_dependencies->php->minimum_version);
} else {
$package->setPhpDep(phpversion());
}
if ($this->_dependencies->pear !== false) {
$package->setPearinstallerDep($this->_dependencies->pear->minimum_version, $this->_dependencies->pear->maximum_version, $this->_dependencies->pear->recommended_version, $this->_dependencies->pear->exclude_version);
} else {
$package->setPearinstallerDep(PEAR_Config::singleton()->getRegistry()->packageInfo('PEAR', 'version'));
}
foreach ($this->_maintainers as $maintainer) {
$package->addMaintainer($maintainer->role, $maintainer->user, $maintainer->name, $maintainer->email, $maintainer->active);
}
// handle dependencies
if (!empty($this->_dependencies)) {
$this->log('adding dependencies');
if (count($this->_dependencies->groups) > 0) {
$this->log('found dependency groups');
foreach ($this->_dependencies->groups as $group) {
$this->log("adding [{$group->name}] :: [{$group->hint}]");
$package->addDependencyGroup($group->name, $group->hint);
foreach ($group->packages as $sub_package) {
$package->addGroupPackageDepWithChannel('subpackage', $group->name, $sub_package->name, $sub_package->channel, '0.0.1');
}
}
}
if (count($this->_dependencies->packages) > 0) {
$this->log('found dependencies');
foreach ($this->_dependencies->packages as $dependency) {
$this->log("adding following dependency: {$dependency->channel}/{$dependency->name}");
$package->addPackageDepWithChannel($dependency->type, $dependency->name, $dependency->channel, $dependency->minimum_version, $dependency->maximum_version, $dependency->recommended_version, $dependency->exclude_version, $dependency->providesextension, $dependency->nodefault);
}
}
if (count($this->_dependencies->extensions) > 0) {
$this->log('adding extension dependencies');
foreach ($this->_dependencies->extensions as $extension) {
$this->log("adding ext dependency for: {$extension->name}");
$package->addExtensionDep($extension->type, $extension->name, $extension->minimum_version, $extension->maximum_version, $extension->recommended_version, $extension->extension);
}
}
}
foreach ($this->_changelogs as $changelog) {
$this->log("adding changelog for prior release [{$changelog->version}]");
$changelog->package = $package;
$package->setChangelogEntry($changelog->version, $changelog->toArray());
if (is_null($this->_notes) && $package->getVersion() == $changelog->version) {
$this->log("no package notes specified, using changelog entry");
$this->_notes = $changelog->contents;
}
}
foreach ($this->_replacements as $replacement) {
$replacement->isValid();
$package->addReplacement($replacement->path, $replacement->type, $replacement->from, $replacement->to);
}
foreach ($this->_globalreplacements as $replacement) {
$replacement->isValid();
$this->log("adding global repalcement: {$replacement->from}");
$package->addGlobalReplacement($replacement->type, $replacement->from, $replacement->to);
}
foreach ($this->_releases as $release) {
$this->log('adding new release');
$package->addRelease();
foreach ($release->install as $install) {
$this->log("installing [{$install->name}] as [{$install->as}]");
$package->addInstallAs($install->name, $install->as);
}
}
$notes = preg_replace("/^( {4}|\t)+/m", '', $this->_notes->__toString());
$package->setNotes($notes);
$package->setLicense($this->_license->license, $this->_license->uri);
// handle PostInstallation
if (!empty($this->_postinstalls)) {
foreach ($this->_postinstalls as $postInstall) {
$postInstallScript = $package->initPostinstallScript($postInstall->script);
$this->log('adding post installation for script : ' . $postInstall->script);
foreach ($postInstall->paramgroups as $paramGroup) {
$this->log('adding parameter group' . $paramGroup->name);
$instructions = $paramGroup->instructions;
if (empty($instructions)) {
$instructions = false;
//.........这里部分代码省略.........
示例10:
6. Ralston-Rabinowitz
7. Secant
EOT;
$notes = <<<EOT
* Request #2897: added new parameter \$guess to validateEqFunction()
* Added unit tests
* Examples files renamed to lower case
EOT;
// Some hard-coded stuffs.
$pkg->setPackage('Math_Numerical_RootFinding');
$pkg->setSummary($summary);
$pkg->setDescription($desc);
$pkg->setChannel('pear.php.net');
$pkg->setAPIVersion('1.0');
$pkg->setReleaseVersion('1.1.0a1');
$pkg->setReleaseStability('alpha');
$pkg->setAPIStability('alpha');
$pkg->setNotes($notes);
$pkg->setPackageType('php');
$pkg->setLicense('BSD License', 'http://www.opensource.org/licenses/bsd-license.php');
// Add maintainers.
$pkg->addMaintainer('lead', 'firman', 'Firman Wandayandi', 'firman@php.net', 'yes');
$pkg->addMaintainer('lead', 'mfonda', 'Matthew Fonda', 'mfonda@php.net', 'yes');
// Core dependencies.
$pkg->setPhpDep('4.3.0');
$pkg->setPearinstallerDep('1.4.0');
// Add some replacements.
$pkg->addGlobalReplacement('package-info', '@package_version@', 'version');
// Generate file contents.
$pkg->generateContents();
// Writes a package.xml.
示例11: main
/**
* Main entry point for d51pearpkg2 task
*/
public function main()
{
PEAR_Frontend::setFrontendObject(new d51PearPkg2Task_Frontend($this));
$package = new PEAR_PackageFileManager2();
$this->_initOptions();
$a = $package->setOptions($this->_options);
if (PEAR::isError($a)) {
$this->log($a->getMessage(), Project::MSG_ERR);
exit(-1);
}
$package->setPackage((string) $this->_name);
$package->setSummary((string) $this->_summary);
$desc = preg_replace("/^({$this->_description->indention_type}{{$this->_description->indentions_to_remove}}|\t)+/m", '', (string) $this->_description);
$package->setDescription($desc);
$package->setChannel((string) $this->_channel);
$package->setAPIVersion($this->_version->api);
$package->setReleaseVersion($this->_version->release);
$package->setAPIStability($this->_stability->api);
$package->setReleaseStability($this->_stability->release);
// TODO: allow different types
$package->setPackageType($this->_type);
$package->addRelease();
if (!is_null($this->_dependencies->php)) {
$this->log('Using explicit PHP minimum version: ' . $this->_dependencies->php->minimum_version);
$package->setPhpDep($this->_dependencies->php->minimum_version);
} else {
$this->log('Using current PHP version as minimum: ' . phpversion());
$package->setPhpDep(phpversion());
}
if (!is_null($this->_dependencies->pear)) {
$this->log('setting minimum PEAR version: ' . $this->_dependencies->pear->minimum_version);
$package->setPearinstallerDep($this->_dependencies->pear->minimum_version, $this->_dependencies->pear->maximum_version, $this->_dependencies->pear->recommended_version, $this->_dependencies->pear->exclude_version);
} else {
$this->log('setting minimum PEAR version to currently installed version');
$pear_version = PEAR_Config::singleton()->getRegistry()->packageInfo('PEAR', 'version');
$this->log('minimum PEAR version: ' . $pear_version);
$package->setPearinstallerDep(PEAR_Config::singleton()->getRegistry()->packageInfo('PEAR', 'version'));
}
foreach ($this->_maintainers as $maintainer) {
$this->log("adding maintainer [{$maintainer->user}/{$maintainer->name}] with role [{$maintainer->role}]");
$package->addMaintainer($maintainer->role, $maintainer->user, $maintainer->name, $maintainer->email, $maintainer->active);
}
// handle dependencies
if (!empty($this->_dependencies)) {
$this->log('adding dependencies');
if (count($this->_dependencies->groups) > 0) {
$this->log('found dependency groups');
foreach ($this->_dependencies->groups as $group) {
$this->log("adding [{$group->name}] :: [{$group->hint}]");
$package->addDependencyGroup($group->name, $group->hint);
foreach ($group->packages as $sub_package) {
$package->addGroupPackageDepWithChannel('subpackage', $group->name, $sub_package->name, $sub_package->channel, '0.0.1');
}
}
}
if (count($this->_dependencies->packages) > 0) {
$this->log('found dependencies');
foreach ($this->_dependencies->packages as $dependency) {
$this->log("adding following dependency: {$dependency->channel}/{$dependency->name}");
$package->addPackageDepWithChannel($dependency->type, $dependency->name, $dependency->channel, $dependency->minimum_version, $dependency->maximum_version, $dependency->recommended_version, $dependency->exclude_version, $dependency->providesextension, $dependency->nodefault);
}
}
if (count($this->_dependencies->extensions) > 0) {
$this->log('adding extension dependencies');
foreach ($this->_dependencies->extensions as $extension) {
$this->log("adding ext dependency for: {$extension->name}");
$package->addExtensionDep($extension->type, $extension->name, $extension->minimum_version, $extension->maximum_version, $extension->recommended_version, $extension->extension);
}
}
}
foreach ($this->_changelogs as $changelog) {
$this->log("adding changelog for prior release [{$changelog->version}]");
$changelog->package = $package;
$package->setChangelogEntry($changelog->version, $changelog->toArray());
if (is_null($this->_notes) && $package->getVersion() == $changelog->version) {
$this->log("no package notes specified, using changelog entry");
$this->_notes = $changelog->contents;
}
}
foreach ($this->_replacements as $replacement) {
$replacement->isValid();
$this->log("adding replace from [{$replacement->from}] to [{$replacement->to}]");
$package->addReplacement($replacement->path, $replacement->type, $replacement->from, $replacement->to);
}
foreach ($this->_releases as $release) {
$this->log('adding new release');
$package->addRelease();
foreach ($release->install as $install) {
$this->log("installing [{$install->name}] as [{$install->as}]");
$package->addInstallAs($install->name, $install->as);
}
}
$notes = preg_replace("/^( {4}|\t)+/m", '', (string) $this->_notes);
$package->setNotes($notes);
$package->setLicense($this->_license->license, $this->_license->uri);
$package->generateContents();
$e = $package->writePackageFile();
//.........这里部分代码省略.........
示例12: array
/**
* Package metadata
*/
$releaseStability = 'beta';
$apiStability = 'stable';
$maintainers = array(array('lead', 'open-flash-chart', 'John Glazebrook', 'open-flash-chart@teethgrinder.co.uk'));
$packageSourceDirectory = dirname(__FILE__);
$options = array('baseinstalldir' => $baseInstallDir, 'dir_roles' => $dirRoles, 'exceptions' => $exceptions, 'filelistgenerator' => 'File', 'ignore' => $ignore, 'packagedirectory' => $packageSourceDirectory, 'pathtopackagefile' => dirname(__FILE__), 'roles' => $roles, 'simpleoutput' => $simpleoutput, 'state' => $state, 'version' => $version);
$pkg = new PEAR_PackageFileManager2();
handleError($pkg->setOptions($options));
// Set misc package information
$pkg->setPackage($package);
$pkg->setSummary($summary);
$pkg->setDescription($description);
$pkg->setChannel($channel);
$pkg->setReleaseStability($releaseStability);
$pkg->setAPIStability($apiStability);
$pkg->setReleaseVersion($version);
$pkg->setAPIVersion($apiVersion);
$pkg->setLicense($license);
$pkg->setNotes($notes);
$pkg->setPackageType('php');
$pkg->setPhpDep('5.0.0');
$pkg->setPearinstallerDep('1.4.9');
// Require custom file role for our web installation
// $pkg->addPackageDepWithChannel('required', 'Role_Web', 'pearified.com');
// Define that we will use our custom file role in this script
// $pkg->addUsesRole('web', 'Webfiles');
// Create the current release and add it to the package definition
$pkg->addRelease();
handleError($pkg->generateContents());
示例13: array
require_once 'PEAR/PackageFileManager2.php';
require_once 'PEAR/PackageFileManager/File.php';
// avoid bugs
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$releaseStatus = "beta";
$notes = APP_NAME;
$version = APP_VERSION;
$config = array('filelistgenerator' => 'file', 'packagedirectory' => dirname(dirname(dirname(__FILE__))) . '/', 'baseinstalldir' => APP_ID, 'ignore' => array('CVS/', 'package.xml', '.svn/', '.htaccess', 'beardev/', '.DS_Store', 'error.log', 'page.log'), 'changelogoldtonew' => false, 'description' => APP_DESCRIPTION, 'dir_roles' => array('data' => 'data'), 'roles' => array('php' => 'data', 'tpl' => 'data', 'txt' => 'data'));
$packagexml = new PEAR_PackageFileManager2();
$packagexml->setOptions($config);
$packagexml->setPackage(APP_PACKAGE_NAME);
$packagexml->setSummary($notes);
$packagexml->setDescription(APP_DESCRIPTION);
$packagexml->setAPIVersion($version);
$packagexml->setReleaseVersion($version);
$packagexml->setReleaseStability(APP_RELEASE_STATUS);
$packagexml->setAPIStability(APP_RELEASE_STATUS);
$packagexml->setNotes($notes);
$packagexml->setLicense('The BSD License', 'http://www.opensource.org/licenses/bsd-license.php');
$packagexml->setPackageType('php');
$packagexml->addRole('*', 'data');
$packagexml->setPhpDep('5.2.0');
$packagexml->setPearinstallerDep('1.4.0');
// Maintainer
$packagexml->addMaintainer('lead', DEVELOPER_NAME_SHORT, DEVELOPER_NAME_LONG, DEVELOPER_NAME_EMAIL);
$packagexml->addRelease();
// dependency
// dependency
$packagexml->addPackageDepWithChannel('required', 'BEAR', 'pear.bear-project.net', '0.2.0');
//$packagexml->addPackageDepWithChannel('required', 'Spreadsheet_Excel_Writer', 'pear.php.net', '0.9.0');
/**
示例14: array
/**
* @access private
*/
function &_makePackage($setting, $workdir)
{
// package.xml を作る
$pkgconfig = array('packagedirectory' => $workdir, 'outputdirectory' => $workdir, 'ignore' => array('CVS/', '.cvsignore', '.svn/', 'package.xml', '*.ini', $setting['pkgname'] . '-*.tgz'), 'filelistgenerator' => 'file', 'changelogoldtonew' => false);
$packagexml = new PEAR_PackageFileManager2();
$pkgconfig = array_merge($pkgconfig, $setting['config']);
$packagexml->setOptions($pkgconfig);
$packagexml->setPackage($setting['pkgname']);
$packagexml->setSummary($setting['summary']);
$packagexml->setNotes($setting['notes']);
$packagexml->setDescription($setting['description']);
$packagexml->setChannel($setting['channel']);
$packagexml->setAPIVersion($setting['version']);
$packagexml->setReleaseVersion($setting['version']);
$packagexml->setReleaseStability($setting['state']);
$packagexml->setAPIStability($setting['state']);
$packagexml->setPackageType('php');
foreach ($setting['maintainers'] as $m) {
$packagexml->addMaintainer($m['role'], $m['user'], $m['name'], $m['email'], $m['active']);
}
$packagexml->setLicense($setting['license']['name'], $setting['license']['uri']);
$packagexml->addRole('css', 'php');
$packagexml->addRole('tpl', 'php');
$packagexml->addRole('ethna', 'php');
$packagexml->addRole('sh', 'script');
$packagexml->addRole('bat', 'script');
$packagexml->setPhpDep('4.3.0');
$packagexml->setPearinstallerDep('1.3.5');
$packagexml->generateContents();
foreach ($setting['callback'] as $method => $params) {
$r = call_user_func_array(array(&$packagexml, $method), $params);
}
$r = $packagexml->writePackageFile();
if (PEAR::isError($r)) {
return Ethna::raiseError($r->getMessage, $r->getCode());
}
// finally make package
PEAR_Command::setFrontendType('CLI');
$ui = PEAR_Command::getFrontendObject();
$config = PEAR_Config::singleton();
$ui->setConfig($config);
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array(&$ui, 'displayFatalError'));
$cmd = PEAR_Command::factory('package', $config);
if (PEAR::isError($cmd)) {
return Ethna::raiseError($cmd->getMessage, $cmd->getCode());
}
$r = $cmd->run('package', array(), array("{$workdir}/package.xml"));
if (PEAR::isError($r)) {
return Ethna::raiseError($r->getMessage, $r->getCode());
}
}
示例15: dirname
$stability = 'beta';
$apistability = 'beta';
$notes = <<<EOS
- Initial release on PEAR channel.
EOS;
// set parameters to the package
$packagexml = new PEAR_PackageFileManager2();
$packagexml->setOptions(array('baseinstalldir' => '/', 'packagedirectory' => dirname(__FILE__), 'filelistgenerator' => 'file', 'ignore' => array('package.php', 'package.xml', "{$packagename}-{$version}.tgz"), 'dir_roles' => array('tests' => 'test', 'manual' => 'doc', 'examples' => 'data'), 'exceptions' => array("{$packagename}.dsp" => 'src', 'CREDITS' => 'doc', 'EXPERIMENTAL' => 'doc', 'LICENSE' => 'doc', 'README' => 'doc')));
$packagexml->setPackage($packagename);
$packagexml->setSummary($summary);
$packagexml->setNotes($notes);
$packagexml->setDescription($description);
$packagexml->setLicense('MIT License', 'http://www.opensource.org/licenses/mit-license.php');
$packagexml->setReleaseVersion($version);
$packagexml->setAPIVersion($apiversion);
$packagexml->setReleaseStability($stability);
$packagexml->setAPIStability($apistability);
$packagexml->addMaintainer('lead', 'rsk', 'Ryusuke SEKIYAMA', 'rsky0711@gmail.com');
$packagexml->setPackageType('extsrc');
$packagexml->setProvidesExtension($packagename);
$packagexml->addConfigureOption('with-unichar-icu', 'Enable ICU-related features. Yes, no or pathname to icu-config.', 'no');
$packagexml->setPhpDep('4.4.0');
$packagexml->setPearinstallerDep('1.4.1');
$packagexml->setChannel($channel);
$packagexml->generateContents();
// generate package.xml
if (php_sapi_name() === 'cli' && $_SERVER['argc'] > 1 && $_SERVER['argv'][1] === 'make') {
$make = true;
} elseif (!empty($_GET['make'])) {
$make = true;
} else {