Naneau\Obfuscator\Console\Command\ObfuscateCommand::execute PHP Method

execute() protected method

Execute the command
protected execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output ) : void
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
return void
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        // Finalize the container
        $this->finalizeContainer($input);
        // Input/output dirs
        $inputDirectory = $input->getArgument('input_directory');
        $outputDirectory = $input->getArgument('output_directory');
        if (!empty($outputDirectory)) {
            $output->writeln(sprintf('Copying input directory <info>%s</info> to <info>%s</info>', $inputDirectory, $outputDirectory));
            $this->copyDir($inputDirectory, $outputDirectory);
            $directory = $outputDirectory;
        } else {
            $directory = $inputDirectory;
        }
        // Strip whitespace?
        $stripWhitespace = !$input->getOption('leave_whitespace');
        $ignoreError = !!$input->getOption('ignore_error');
        // Show every file
        $this->getObfuscator()->getEventDispatcher()->addListener('obfuscator.file', function (FileEvent $event) use($output, $directory) {
            $output->writeln(sprintf('Obfuscating <info>%s</info>', substr($event->getFile(), strlen($directory))));
        });
        // Show error processing file
        if ($ignoreError) {
            $this->getObfuscator()->getEventDispatcher()->addListener('obfuscator.file.error', function (FileErrorEvent $event) use($output, $directory) {
                $output->writeln(sprintf('Error obfuscating <error>%s</error>', substr($event->getFile(), strlen($directory))));
                $output->writeln(sprintf('Parsing error: <error>%s</error>', $event->getErrorMessage()));
            });
        }
        // Actual obfuscation
        $this->getObfuscator()->obfuscate($directory, $stripWhitespace, $ignoreError);
    }