build_package.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. require_once('PEAR/PackageFileManager2.php');
  3. PEAR::setErrorHandling(PEAR_ERROR_DIE);
  4. /**
  5. * Package Options
  6. */
  7. $package = 'OCF';
  8. $baseInstallDir = 'OCF';
  9. $channel = 'pear.php.net';
  10. $description = 'Open Flash Charts interface library';
  11. $dirRoles = array(
  12. // dirname=> role
  13. 'simpletest'=> 'test',
  14. 'examples'=> 'data',
  15. );
  16. $exceptions = array(
  17. // filename=> role
  18. 'build_package.php'=> 'data',
  19. );
  20. $ignore = array(
  21. // file|dir/
  22. 'tmp/',
  23. );
  24. $roles = array(
  25. // fileext=> role
  26. 'php'=> 'php',
  27. );
  28. $category = 'Libraries';
  29. $license = 'PHP';
  30. $notes = 'Helper library for working with Open Flash Charts';
  31. $version = '2.0.0';
  32. $apiVersion = '2.0.0';
  33. $simpleoutput = true;
  34. $state = 'beta';
  35. $summary = 'Open Flash Charts interface library';
  36. /**
  37. * Package metadata
  38. */
  39. $releaseStability = 'beta';
  40. $apiStability = 'stable';
  41. $maintainers = array(
  42. // role, username on PEAR.net,full name, email
  43. array('lead', 'open-flash-chart', 'John Glazebrook', 'open-flash-chart@teethgrinder.co.uk'),
  44. );
  45. $packageSourceDirectory = dirname(__FILE__);
  46. $options = array(
  47. 'baseinstalldir' => $baseInstallDir,
  48. 'dir_roles' => $dirRoles,
  49. 'exceptions' => $exceptions,
  50. 'filelistgenerator' => 'File',
  51. 'ignore' => $ignore,
  52. 'packagedirectory' => $packageSourceDirectory,
  53. 'pathtopackagefile' => dirname(__FILE__),
  54. 'roles' => $roles,
  55. 'simpleoutput' => $simpleoutput,
  56. 'state' => $state,
  57. 'version' => $version,
  58. );
  59. $pkg = new PEAR_PackageFileManager2();
  60. handleError($pkg->setOptions($options));
  61. // Set misc package information
  62. $pkg->setPackage($package);
  63. $pkg->setSummary($summary);
  64. $pkg->setDescription($description);
  65. $pkg->setChannel($channel);
  66. $pkg->setReleaseStability($releaseStability);
  67. $pkg->setAPIStability($apiStability);
  68. $pkg->setReleaseVersion($version);
  69. $pkg->setAPIVersion($apiVersion);
  70. $pkg->setLicense($license);
  71. $pkg->setNotes($notes);
  72. $pkg->setPackageType('php');
  73. $pkg->setPhpDep('5.0.0');
  74. $pkg->setPearinstallerDep('1.4.9');
  75. // Require custom file role for our web installation
  76. // $pkg->addPackageDepWithChannel('required', 'Role_Web', 'pearified.com');
  77. // Define that we will use our custom file role in this script
  78. // $pkg->addUsesRole('web', 'Webfiles');
  79. // Create the current release and add it to the package definition
  80. $pkg->addRelease();
  81. handleError($pkg->generateContents());
  82. // Package release needs a maintainer
  83. foreach($maintainers as $m) {
  84. handleError($pkg->addMaintainer($m[0], $m[1], $m[2], $m[3]));
  85. }
  86. if($argv[1] === 'write') {
  87. handleError($pkg->writePackageFile());
  88. exit(1);
  89. }
  90. handleError($pkg->debugPackageFile());
  91. /**
  92. * Simple error handler
  93. *
  94. * @param Exception $e
  95. */
  96. function handleError($e) {
  97. if(PEAR::isError($e)) {
  98. die($e->getMessage());
  99. }
  100. }