*/ class Blatech { protected $blatech = null; /** * Construct the object loading the config file and storing it * as an array in the $blatech var * * @author Phil Burton * @param $config String The file and path of the config file */ public function __construct($config) { $this->blatech = parse_ini_file($config,true); } /** * Run a shell command and return the result * * @author Phil Burton * @param $message Array The message containing the required commands * @param $args String The sting of space seperated arguments * @return String The result of the shell command * @todo Abstract IRC related information away from this class */ public function runCommand($message, $args) { $nick = ltrim(explode('!', $message[0])[0],":"); $channel = $message[2]; $msg = explode(" ", ltrim(trim($message[3],"\r\n"), ":!")); if (!isset($msg[0])) { return null; } else { if (array_key_exists($msg[0], $this->blatech)) { $command = $this->blatech[$msg[0]]['command']; $stdin = $this->blatech[$msg[0]]['stdin']; $cargs = $this->blatech[$msg[0]]['args']; $path = $this->blatech[$msg[0]]["path"]; if ($path == true) { $cd = "cd " . $path . ' && '; } else { $cd = ""; } if ($stdin == true) { return explode("\n", shell_exec($cd . 'echo "' . $args . '" | ' . $command))[0]; } else if ($cargs == true) { return 'Command Line Arguments Not Supported Yet.'; } else { return explode("\n", shell_exec($cd . $command))[0]; } } } } }