diff -r 000000000000 -r 7f95f8617b0b bin/vendors --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/vendors Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,127 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$rootDir = dirname(__DIR__); +$vendorDir = $rootDir.'/vendor'; + +array_shift($argv); +if (!isset($argv[0])) { + exit(<< $dep) { + $dep = array_map('trim', $dep); + + // revision + if (isset($versions[$name])) { + $rev = $versions[$name]; + } else { + $rev = isset($dep['version']) ? $dep['version'] : 'origin/HEAD'; + } + + // install dir + $installDir = isset($dep['target']) ? $vendorDir.'/'.$dep['target'] : $vendorDir.'/'.$name; + if (in_array('--reinstall', $argv)) { + if (PHP_OS == 'WINNT') { + system(sprintf('rmdir /S /Q %s', escapeshellarg(realpath($installDir)))); + } else { + system(sprintf('rm -rf %s', escapeshellarg($installDir))); + } + } + + echo "> Installing/Updating $name\n"; + + // url + if (!isset($dep['git'])) { + exit(sprintf('The "git" value for the "%s" dependency must be set.', $name)); + } + $url = $dep['git']; + + if (!is_dir($installDir)) { + system(sprintf('git clone %s %s', escapeshellarg($url), escapeshellarg($installDir))); + } + + system(sprintf('cd %s && git fetch origin && git reset --hard %s', escapeshellarg($installDir), escapeshellarg($rev))); + + if ('update' === $command) { + ob_start(); + system(sprintf('cd %s && git log -n 1 --format=%%H', escapeshellarg($installDir))); + $newversions[] = trim($name.' '.ob_get_clean()); + } +} + +// update? +if ('update' === $command) { + file_put_contents($rootDir.'/deps.lock', implode("\n", $newversions)); +} + +// php on windows can't use the shebang line from system() +$interpreter = PHP_OS == 'WINNT' ? 'php.exe' : ''; + +// Update the bootstrap files +system(sprintf('%s %s', $interpreter, escapeshellarg($rootDir.'/vendor/bundles/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php'))); + +// Update assets +system(sprintf('%s %s assets:install %s', $interpreter, escapeshellarg($rootDir.'/app/console'), escapeshellarg($rootDir.'/web/'))); + +// Remove the cache +system(sprintf('%s %s cache:clear --no-warmup', $interpreter, escapeshellarg($rootDir.'/app/console')));