add action to post-release a pharext package
[pharext/pharext.org] / app / Pharext / Package.php
diff --git a/app/Pharext/Package.php b/app/Pharext/Package.php
new file mode 100644 (file)
index 0000000..bb0d92c
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+namespace app\Pharext;
+
+use pharext\Metadata;
+use pharext\SourceDir;
+use pharext\Task;
+
+class Package
+{
+       private $file;
+
+       function __construct($git_url, $tag_name, $pkg_name, $options) {
+               $dir = (new Task\GitClone($git_url, $tag_name))->run();
+               $src = !empty($options->pecl)
+                       ? new SourceDir\Pecl($dir)
+                       : new SourceDir\Git($dir);
+               $meta = Metadata::all() + [
+                       "name" => $pkg_name,
+                       "release" => $tag_name,
+                       "license" => $src->getLicense(),
+                       "stub" => "pharext_installer.php",
+                       "type" => !empty($options->zend) ? "zend_extension" : "extension",
+               ];
+               $this->file = (new Task\PharBuild($src, $meta))->run();
+       }
+
+       function __toString() {
+               return (string) $this->file;
+       }
+
+       function getFile() {
+               return $this->file;
+       }
+}