diff options
Diffstat (limited to 'src/IRC/Application.php')
| -rw-r--r-- | src/IRC/Application.php | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/src/IRC/Application.php b/src/IRC/Application.php new file mode 100644 index 0000000..4bb6d71 --- /dev/null +++ b/src/IRC/Application.php @@ -0,0 +1,47 @@ +<?php + +namespace FBeans\Blatask\IRC; + +use FBeans\BlaIRC\Command; +use FBeans\BlaIRC\Application As BlaApplication; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Process\Process; + +class Application extends BlaApplication +{ +    public function command(): Command +    { +        $command = new Command; +        $command->setName('task:list'); + +        // argument 0 is the command name +        $command->addArgument(1); + +        $command->setExecuteCallback( +            function (InputInterface $input, OutputInterface $output) { +                $filter = $input->getArgument(1); + +                $process_argument = ["task", "list"]; + +                if ($filter) { +                    $process_argument[] = $filter; +                } + +                $process = new Process($process_argument); +                 +                $process->run(); + +                if (!$process->isSuccessful()) { +                    $output->write($process->getErrorOutput()); +                    return Command::SUCCESS; +                } + +                $output->write($process->getOutput()); +                return Command::FAILURE; +            } +        ); + +        return $command; +    } +} | 
