|
|
<?php |
|
|
|
|
|
namespace Kanboard\Console; |
|
|
|
|
|
use Kanboard\Core\Plugin\Installer; |
|
|
use Kanboard\Core\Plugin\PluginInstallerException; |
|
|
use LogicException; |
|
|
use Symfony\Component\Console\Input\InputArgument; |
|
|
use Symfony\Component\Console\Input\InputInterface; |
|
|
use Symfony\Component\Console\Output\OutputInterface; |
|
|
|
|
|
class PluginUninstallCommand extends BaseCommand |
|
|
{ |
|
|
protected function configure() |
|
|
{ |
|
|
$this |
|
|
->setName('plugin:uninstall') |
|
|
->setDescription('Remove a plugin') |
|
|
->addArgument('pluginId', InputArgument::REQUIRED, 'Plugin directory name'); |
|
|
} |
|
|
|
|
|
protected function execute(InputInterface $input, OutputInterface $output): int |
|
|
{ |
|
|
if (!Installer::isConfigured()) { |
|
|
throw new LogicException('Kanboard is not configured to install plugins itself'); |
|
|
} |
|
|
|
|
|
try { |
|
|
$installer = new Installer($this->container); |
|
|
$installer->uninstall($input->getArgument('pluginId')); |
|
|
$output->writeln('<info>Plugin removed successfully</info>'); |
|
|
return 0; |
|
|
} catch (PluginInstallerException $e) { |
|
|
$output->writeln('<error>'.$e->getMessage().'</error>'); |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
|