X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fpharext%2FTask%2FExtract.php;fp=src%2Fpharext%2FTask%2FExtract.php;h=3aa3f85950707841e0263d5a8ff441905fd91fad;hb=4af08c149c8b66e9fe8b9b0fb9f276e0745377d1;hp=d68b426dd129a4ac5d6956f33cf4a9ecbd4281b2;hpb=ce54d468fa97453d949185c0128b435add9aa68d;p=pharext%2Fpharext diff --git a/src/pharext/Task/Extract.php b/src/pharext/Task/Extract.php index d68b426..3aa3f85 100644 --- a/src/pharext/Task/Extract.php +++ b/src/pharext/Task/Extract.php @@ -2,6 +2,7 @@ namespace pharext\Task; +use pharext\Archive; use pharext\Task; use pharext\Tempdir; @@ -22,7 +23,7 @@ class Extract implements Task * @param mixed $source archive location */ public function __construct($source) { - if ($source instanceof Phar || $source instanceof PharData) { + if ($source instanceof Phar || $source instanceof PharData || $source instanceof Archive) { $this->source = $source; } else { $this->source = new PharData($source); @@ -37,6 +38,9 @@ class Extract implements Task if ($verbose) { printf("Extracting %s ...\n", basename($this->source->getPath())); } + if ($this->source instanceof Archive) { + return $this->source->extract(); + } $dest = new Tempdir("extract"); $this->source->extractTo($dest); return $dest;