Przeglądaj źródła

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

Jordi Boggiano 10 lat temu
rodzic
commit
921b3a0eba

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

@@ -392,11 +392,15 @@ EOT
         foreach ($licenses as $licenseId) {
             $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 {
-                $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);

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

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