protected function execute(InputInterface $input, OutputInterface $output)
{
parent::execute($input, $output);
// download and extract the plugin
$this->fetch();
// check if the plugin exists
if ($this->pluginExists()) {
if (!$this->confirm('Do you want to update this plugin?')) {
$this->cleanUp();
return;
}
} else {
if (!$this->confirm('The plugin is not installed yet. Do you want to install it?')) {
$this->cleanUp();
return;
}
}
try {
$this->move();
$this->cleanUp();
} catch (RuntimeException $e) {
// make sure to clean up even after errors
$this->cleanUp();
throw $e;
}
}