summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--composer.json26
-rw-r--r--scripts/irc.php10
-rw-r--r--src/IRC/Application.php47
4 files changed, 85 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3a9875b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/vendor/
+composer.lock
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..353ee5f
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,26 @@
+{
+ "name": "fbeans/blatask",
+ "authors": [
+ {
+ "name": "Fbenas",
+ "email": "philbeansburton@gmail.com"
+ }
+ ],
+ "require": {
+ "fbeans/blairc": "0.1",
+ "symfony/process": "^5.2@dev",
+ "symfony/console": "^5.2"
+ },
+ "autoload": {
+ "psr-4": {
+ "FBeans\\Blatask\\": "src/"
+ }
+ },
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://www.blatech.co.uk/FBeans/blairc.git"
+ }
+ ],
+ "minimum-stability": "dev"
+}
diff --git a/scripts/irc.php b/scripts/irc.php
new file mode 100644
index 0000000..172ed29
--- /dev/null
+++ b/scripts/irc.php
@@ -0,0 +1,10 @@
+<?php
+
+require __DIR__.'/../vendor/autoload.php';
+
+use FBeans\Blatask\IRC\Application;
+
+$app = (new Application)
+ ->fromStdin()
+ ->toConsole()
+ ->run();
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;
+ }
+}