protected function configure()
{
$this->setName('environment:delete')->setDescription('Delete an environment')->addArgument('environment', InputArgument::IS_ARRAY, 'The environment(s) to delete')->addOption('delete-branch', null, InputOption::VALUE_NONE, 'Delete the remote Git branch(es) too')->addOption('no-delete-branch', null, InputOption::VALUE_NONE, 'Do not delete the remote Git branch(es)')->addOption('inactive', null, InputOption::VALUE_NONE, 'Delete all inactive environments')->addOption('merged', null, InputOption::VALUE_NONE, 'Delete all merged environments')->addOption('exclude', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Environments not to delete');
$this->addProjectOption()->addEnvironmentOption()->addNoWaitOption();
$this->addExample('Delete the environments "test" and "example-1"', 'test example-1');
$this->addExample('Delete all inactive environments', '--inactive');
$this->addExample('Delete all environments merged with "master"', '--merged master');
$service = self::$config->get('service.name');
$this->setHelp(<<<EOF
When a {$service} environment is deleted, it will become "inactive": it will
exist only as a Git branch, containing code but no services, databases nor
files.
This command allows you to delete environment(s) as well as their Git branches.
EOF
);
}