private function localize($source)
{
if (!stream_is_local($source) || $this->args->git && isset($this->args->branch)) {
$source = $this->download($source);
$this->cleanup[] = new Task\Cleanup($source);
}
$source = realpath($source);
if (!is_dir($source)) {
$source = $this->extract($source);
$this->cleanup[] = new Task\Cleanup($source);
if (!$this->args->git) {
$source = (new Task\PeclFixup($source))->run($this->verbosity());
}
}
return $source;
}