3 namespace pharext\Task
;
13 * Extract a package archive
15 class Extract
implements Task
23 * @param mixed $source archive location
25 public function __construct($source) {
26 if ($source instanceof Phar ||
$source instanceof PharData ||
$source instanceof Archive
) {
27 $this->source
= $source;
29 $this->source
= new PharData($source);
34 * @param bool $verbose
35 * @return \pharext\Tempdir
37 public function run($verbose = false) {
39 printf("Extracting %s ...\n", basename($this->source
->getPath()));
41 if ($this->source
instanceof Archive
) {
42 return $this->source
->extract();
44 $dest = new Tempdir("extract");
45 $this->source
->extractTo($dest);