add action to post-release a pharext package
[pharext/pharext.org] / app / Pharext / Package.php
1 <?php
2
3 namespace app\Pharext;
4
5 use pharext\Metadata;
6 use pharext\SourceDir;
7 use pharext\Task;
8
9 class Package
10 {
11 private $file;
12
13 function __construct($git_url, $tag_name, $pkg_name, $options) {
14 $dir = (new Task\GitClone($git_url, $tag_name))->run();
15 $src = !empty($options->pecl)
16 ? new SourceDir\Pecl($dir)
17 : new SourceDir\Git($dir);
18 $meta = Metadata::all() + [
19 "name" => $pkg_name,
20 "release" => $tag_name,
21 "license" => $src->getLicense(),
22 "stub" => "pharext_installer.php",
23 "type" => !empty($options->zend) ? "zend_extension" : "extension",
24 ];
25 $this->file = (new Task\PharBuild($src, $meta))->run();
26 }
27
28 function __toString() {
29 return (string) $this->file;
30 }
31
32 function getFile() {
33 return $this->file;
34 }
35 }