diff options
| author | Max Kremmel <xing@synapse.plus.com> | 2008-10-28 21:00:42 +0000 |
|---|---|---|
| committer | Max Kremmel <xing@synapse.plus.com> | 2008-10-28 21:00:42 +0000 |
| commit | 3d7d38fe9824f24a95559338db0b34c910562b37 (patch) | |
| tree | 8ae2d6cfd3f22d5bb904ffba6c22af7cd850018b /BitInstaller.php | |
| parent | 144ac2706c4687db67b473d3ef223bdc29401c0c (diff) | |
| download | install-3d7d38fe9824f24a95559338db0b34c910562b37.tar.gz install-3d7d38fe9824f24a95559338db0b34c910562b37.tar.bz2 install-3d7d38fe9824f24a95559338db0b34c910562b37.zip | |
sort required packages first since these upgrades should be applied first.
Diffstat (limited to 'BitInstaller.php')
| -rw-r--r-- | BitInstaller.php | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/BitInstaller.php b/BitInstaller.php index 06bbaaf..01524dd 100644 --- a/BitInstaller.php +++ b/BitInstaller.php @@ -1,6 +1,6 @@ <?php /** - * @version $Header: /cvsroot/bitweaver/_bit_install/BitInstaller.php,v 1.38 2008/10/26 11:04:59 squareing Exp $ + * @version $Header: /cvsroot/bitweaver/_bit_install/BitInstaller.php,v 1.39 2008/10/28 21:00:42 squareing Exp $ * @package install */ @@ -61,7 +61,8 @@ class BitInstaller extends BitSystem { $this->registerPackageVersion( $pParams['package'], $pParams['version'] ); $this->mPackageUpgrades[$pParams['package']][$pParams['version']] = $pParams; $this->mPackageUpgrades[$pParams['package']][$pParams['version']]['upgrade'] = $pUpgradeHash; - // ensure all upgrades are in ascending order + // ensure all upgrades are in the right order + uksort( $this->mPackageUpgrades, 'upgrade_package_sort' ); uksort( $this->mPackageUpgrades[$pParams['package']], 'upgrade_version_sort' ); } } @@ -760,6 +761,27 @@ function makeConnection( $gBitDbType, $gBitDbHost, $gBitDbUser, $gBitDbPassword, } /** + * upgrade_package_sort + * + * @param array $a + * @param array $b + * @access public + * @return TRUE on success, FALSE on failure - mErrors will contain reason for failure + */ +function upgrade_package_sort( $a, $b ) { + global $gBitInstaller; + $aa = $gBitInstaller->mPackages[$a]; + $bb = $gBitInstaller->mPackages[$b]; + if(( $aa['required'] && $bb['required'] ) || ( !$aa['required'] && !$bb['required'] )) { + return 0; + } elseif( $aa['required'] && !$bb['required'] ) { + return -1; + } elseif( !$aa['required'] && $bb['required'] ) { + return 1; + } +} + +/** * upgrade_version_sort * * @param array $a |
