license helper
[pharext/pharext] / src / pharext / SourceDir / Pecl.php
index 351eaa21eae0b869dcb1cf857d049a4b426c821a..277e122b255c9cd67b140dcde8bf68df412a264b 100644 (file)
@@ -5,13 +5,15 @@ namespace pharext\SourceDir;
 use pharext\Cli\Args;
 use pharext\Exception;
 use pharext\SourceDir;
-use pharext\Tempfile;
+use pharext\License;
 
 /**
  * A PECL extension source directory containing a v2 package.xml
  */
 class Pecl implements \IteratorAggregate, SourceDir
 {
+       use License;
+       
        /**
         * The package.xml
         * @var SimpleXmlElement
@@ -73,6 +75,25 @@ class Pecl implements \IteratorAggregate, SourceDir
                }
        }
 
+       /**
+        * @inheritdoc
+        * @return string
+        */
+       public function getLicense() {
+               if (($license = $this->sxe->xpath("/pecl:package/pecl:license"))) {
+                       if (($file = $this->findLicense($this->getBaseDir(), $license[0]["filesource"]))) {
+                               return $this->readLicense($file);
+                       }
+               }
+               if (($file = $this->findLicense($this->getBaseDir()))) {
+                       return $this->readLicense($file);
+               }
+               if ($license) {
+                       return $license[0] ." ". $license[0]["uri"];
+               }
+               return "UNKNOWN";
+       }
+
        /**
         * @inheritdoc
         * @see \pharext\SourceDir::getArgs()