. */ /* */ /*************************************************************************************/ namespace Thelia\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Exception\IOException; use Thelia\Command\ContainerAwareCommand; use Thelia\Model\ModuleQuery; /** * activates a module * * Class ModuleActivateCommand * @package Thelia\Command * @author Etienne Roudeix * */ class ModuleActivateCommand extends BaseModuleGenerate { protected function configure() { $this ->setName("module:activate") ->setDescription("Activates a module") ->addArgument( "module" , InputArgument::REQUIRED, "module to activate" ) ; } protected function execute(InputInterface $input, OutputInterface $output) { $moduleCode = $this->formatModuleName($input->getArgument("module")); $module = ModuleQuery::create()->findOneByCode($moduleCode); if(null === $module) { $output->renderBlock(array( '', sprintf("module %s not found", $moduleCode), '' ), "bg=red;fg=white"); } try { $moduleReflection = new \ReflectionClass($module->getFullNamespace()); $moduleInstance = $moduleReflection->newInstance(); $moduleInstance->activate(); } catch(\Exception $e) { $output->renderBlock(array( '', sprintf("Activation fail with Exception : [%d] %s", $e->getCode(), $e->getMessage()), '' ), "bg=red;fg=white"); } $output->renderBlock(array( '', sprintf("Activation succeed for module %s", $moduleCode), '' ), "bg=green;fg=black"); } }