1
0
Fork 0

Added branch-alias for dev-master to --version|-V output when current version is actually a revision (a non release/git tag).

This replies the work done in #3352 respecting other uses of ```Composer::VERSION``` constant.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| Doc PR        | none
pull/3362/head
Javier Spagnoletti 2014-10-16 22:13:17 -03:00
parent b0cabd1e98
commit e36f2ea618
3 changed files with 21 additions and 0 deletions

View File

@ -12,6 +12,7 @@
namespace Composer;
use Composer\Json\JsonFile;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Process\Process;
@ -24,6 +25,7 @@ use Symfony\Component\Process\Process;
class Compiler
{
private $version;
private $branchAliasVersion = '';
private $versionDate;
/**
@ -48,6 +50,13 @@ class Compiler
if ($process->run() != 0) {
throw new \RuntimeException('Can\'t run git log. You must ensure to run compile from composer git repository clone and that git binary is available.');
}
$localConfig = __DIR__.'/../../composer.json';
$file = new JsonFile($localConfig);
$localConfig = $file->read();
if (isset($localConfig['extra']['branch-alias']['dev-master'])) {
$this->branchAliasVersion = $localConfig['extra']['branch-alias']['dev-master'];
}
$date = new \DateTime(trim($process->getOutput()));
$date->setTimezone(new \DateTimeZone('UTC'));
$this->versionDate = $date->format('Y-m-d H:i:s');
@ -138,6 +147,7 @@ class Compiler
if ($path === 'src/Composer/Composer.php') {
$content = str_replace('@package_version@', $this->version, $content);
$content = str_replace('@package_branch_alias_version@', $this->branchAliasVersion, $content);
$content = str_replace('@release_date@', $this->versionDate, $content);
}

View File

@ -29,6 +29,7 @@ use Composer\Autoload\AutoloadGenerator;
class Composer
{
const VERSION = '@package_version@';
const BRANCH_ALIAS_VERSION = '@package_branch_alias_version@';
const RELEASE_DATE = '@release_date@';
/**

View File

@ -265,6 +265,16 @@ class Application extends BaseApplication
*/
public function getLongVersion()
{
if (Composer::BRANCH_ALIAS_VERSION) {
return sprintf(
'<info>%s</info> version <comment>%s (%s)</comment> %s',
$this->getName(),
Composer::BRANCH_ALIAS_VERSION,
$this->getVersion(),
Composer::RELEASE_DATE
);
}
return parent::getLongVersion() . ' ' . Composer::RELEASE_DATE;
}