package.php 3.2 KB
Newer Older
1 2
<?php

3
buildPearPackage('/Users/jwage/Sites/doctrine/trunk', '0.9.0', 'beta');
4

5 6 7 8 9 10
function buildPearPackage($path, $version, $state)
{
    $packageFile = $path . DIRECTORY_SEPARATOR . 'package.xml';
    
    require_once('PEAR/packageFileManager2.php');
    PEAR::setErrorHandling(PEAR_ERROR_DIE);
11

12 13 14 15
    $packagexml = new PEAR_packageFileManager2;
    
    $notes = <<<EOT
-
16 17
EOT;

18
    $summary = 'PHP5 Database ORM';
19

20
    $description =<<<EOT
21 22 23 24 25 26 27 28
Doctrine is an ORM (object relational mapper) for PHP 5.2.x+ that sits on top of
a powerful DBAL (database abstraction layer). One of its key features is the
ability to optionally write database queries in an OO (object oriented)
SQL-dialect called DQL inspired by Hibernates HQL. This provides developers with
a powerful alternative to SQL that maintains a maximum of flexibility without
requiring needless code duplication.
EOT;

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
    $options = array(
        'filelistgenerator' => 'svn',
        'changelogoldtonew' => false,
        'simpleoutput'      => true,
        'baseinstalldir'    => '/',
        'packagedirectory'  => $path,
        'packageFile'       => $packageFile,
        'clearcontents'     => false,
        // What to ignore
        'ignore'            => array(
            $path . DIRECTORY_SEPARATOR . 'vendor/',
            $path . DIRECTORY_SEPARATOR . 'package*.*',
            $path . DIRECTORY_SEPARATOR . 'tests_old/',
            $path . DIRECTORY_SEPARATOR . 'tests/',
            $path . DIRECTORY_SEPARATOR . 'tools/'
        ),
        // What to include in package
        'include'            => array(
            $path . DIRECTORY_SEPARATOR . 'lib/',
            $path . DIRECTORY_SEPARATOR . 'manual/',
            $path . DIRECTORY_SEPARATOR . 'vendor/',
            $path . DIRECTORY_SEPARATOR . 'README',
            $path . DIRECTORY_SEPARATOR . 'CHANGELOG',
            $path . DIRECTORY_SEPARATOR . 'LICENSE',
            $path . DIRECTORY_SEPARATOR . 'COPYRIGHT'
        ),
        // Dir roles
        'dir_roles'         => array(
            'lib'           =>  'php',
            'manual'        =>  'doc',
            'vendor'        =>  'php'
        ),
        // File roles
        'exceptions' => array(
            'README' => 'doc',
            'CHANGELOG' => 'doc',
            'LICENSE' => 'doc',
            'COPYRIGHT' => 'doc'
        )
    );
69

70 71
    $package = &PEAR_packageFileManager2::importOptions($packageFile, $options);
    $package->setPackageType('php');
72

73 74 75 76
    $package->clearDeps();
    $package->setPhpDep('5.2.3');
    $package->setPearInstallerDep('1.4.0b1');
    $package->addPackageDepWithChannel('required', 'PEAR', 'pear.php.net', '1.3.6');
77

78 79 80 81 82 83 84 85 86 87
    $package->addRelease();
    $package->generateContents();
    $package->setReleaseVersion($version);
    $package->setAPIVersion($version);
    $package->setReleaseStability($state);
    $package->setAPIStability($state);
    $package->setNotes($notes);
    $package->setSummary($summary);
    $package->setDescription($description);
    $package->addGlobalReplacement('package-info', '@package_version@', 'version');
88

89 90 91 92 93 94
    if (isset($_GET['make']) || (isset($_SERVER['argv']) && @$_SERVER['argv'][1] == 'make')) {
        $package->writepackageFile();
    } else {
        $package->debugpackageFile();
    }
}