Browse Source

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

Javier Spagnoletti 10 years ago
parent
commit
e36f2ea618
3 changed files with 21 additions and 0 deletions
  1. 10 0
      src/Composer/Compiler.php
  2. 1 0
      src/Composer/Composer.php
  3. 10 0
      src/Composer/Console/Application.php

+ 10 - 0
src/Composer/Compiler.php

@@ -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);
         }
 

+ 1 - 0
src/Composer/Composer.php

@@ -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@';
 
     /**

+ 10 - 0
src/Composer/Console/Application.php

@@ -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;
     }