argument('name'); $path = $this->option('path'); $manager = Admin::extension()->setOutput($this->output); if ($path) { if (! is_file($path)) { $path = rtrim($path, '/').sprintf('/%s.zip', str_replace('/', '.', $name)); } } else { $extensionDetails = $manager->requestDetails($name); $path = $hash = Arr::get($extensionDetails, 'hash'); $this->output->writeln(sprintf('Downloading extension: %s[%s]', $name, $hash)); $manager->download($name, $hash, true); } $this->output->writeln(sprintf('Unpacking extension: %s', $name)); $manager->extract($path); $this->output->writeln(sprintf('Migrating extension...', $name)); Admin::extension()->load(); $manager ->updateManager() ->setOutPut($this->output) ->update($name); } }