浏览代码

Fix regression with non-SPDX licenses in show command, refs #3885

Jordi Boggiano 10 年之前
父节点
当前提交
921b3a0eba
共有 2 个文件被更改,包括 13 次插入5 次删除
  1. 8 4
      src/Composer/Command/ShowCommand.php
  2. 5 1
      src/Composer/Util/SpdxLicense.php

+ 8 - 4
src/Composer/Command/ShowCommand.php

@@ -392,11 +392,15 @@ EOT
         foreach ($licenses as $licenseId) {
         foreach ($licenses as $licenseId) {
             $license = $spdxLicense->getLicenseByIdentifier($licenseId); // keys: 0 fullname, 1 osi, 2 url
             $license = $spdxLicense->getLicenseByIdentifier($licenseId); // keys: 0 fullname, 1 osi, 2 url
 
 
-            // is license OSI approved?
-            if ($license[1] === true) {
-                $out = sprintf('%s (%s) (OSI approved) %s', $license[0], $licenseId, $license[2]);
+            if (!$license) {
+                $out = $licenseId;
             } else {
             } else {
-                $out = sprintf('%s (%s) %s', $license[0], $licenseId, $license[2]);
+                // is license OSI approved?
+                if ($license[1] === true) {
+                    $out = sprintf('%s (%s) (OSI approved) %s', $license[0], $licenseId, $license[2]);
+                } else {
+                    $out = sprintf('%s (%s) %s', $license[0], $licenseId, $license[2]);
+                }
             }
             }
 
 
             $this->getIO()->write('<info>license</info>  : ' . $out);
             $this->getIO()->write('<info>license</info>  : ' . $out);

+ 5 - 1
src/Composer/Util/SpdxLicense.php

@@ -49,10 +49,14 @@ class SpdxLicense
      *
      *
      * @param string $identifier
      * @param string $identifier
      *
      *
-     * @return array
+     * @return array|false
      */
      */
     public function getLicenseByIdentifier($identifier)
     public function getLicenseByIdentifier($identifier)
     {
     {
+        if (!isset($this->licenses[$identifier])) {
+            return false;
+        }
+
         $license = $this->licenses[$identifier];
         $license = $this->licenses[$identifier];
 
 
         // add URL for the license text (it's not included in the json)
         // add URL for the license text (it's not included in the json)