consistent verbosity
[pharext/pharext] / src / pharext / Task / Extract.php
1 <?php
2
3 namespace pharext\Task;
4
5 use pharext\Task;
6 use pharext\Tempdir;
7
8 use Phar;
9 use PharData;
10
11 /**
12 * Extract a package archive
13 */
14 class Extract implements Task
15 {
16 /**
17 * @var Phar(Data)
18 */
19 private $source;
20
21 /**
22 * @param mixed $source archive location
23 */
24 public function __construct($source) {
25 if ($source instanceof Phar || $source instanceof PharData) {
26 $this->source = $source;
27 } else {
28 $this->source = new PharData($source);
29 }
30 }
31
32 /**
33 * @param bool $verbose
34 * @return \pharext\Tempdir
35 */
36 public function run($verbose = false) {
37 if ($verbose) {
38 printf("Extracting %s ...\n", basename($this->source->getPath()));
39 }
40 $dest = new Tempdir("extract");
41 $this->source->extractTo($dest);
42 return $dest;
43 }
44 }