/** * Test SSH service * * @requires extension ssh2 */ public function testSSH() { $app = new \Duality\App(dirname(__FILE__), null); $remote = new SSH($app); $remote->init(); $remote->connectSSH('localhost', 'duality', 'dummy'); $remote->execute('ls'); $remote->terminate(); }
$app->call('db')->reloadFromConfig($config); // Get the commander $cmd = $app->call('cmd'); // Add the database responders $cmd->addResponder('/^db:create$/i', function () use($app) { return $app->call('db')->createFromConfig(); }); $cmd->addResponder('/^db:update$/i', function () use($app) { return $app->call('db')->updateFromConfig(); }); $cmd->addResponder('/^db:seed$/i', function () use($app) { return $app->call('db')->seedFromConfig(); }); // Register ssh command responder if ($app->getConfigItem('remote')) { $app->call('cmd')->addResponder('/^ssh:(.*):(.*)$/i', function ($args) use($app) { $args = array_slice($args, 1); if (!$app->getConfigItem('remote.' . $args[0] . '.username')) { die("Error Config: username param for {$args[0]} not found" . PHP_EOL); } if (!$app->getConfigItem('remote.' . $args[0] . '.password')) { die("Error Config: password param for {$args[0]} not found" . PHP_EOL); } $remote = new SSH($app); $remote->connect($args[0], $app->getConfigItem('remote.' . $args[0] . '.username'), $app->getConfigItem('remote.' . $args[0] . '.password')); echo $remote->execute($args[1]); $remote->disconnect(); }); } // Start listening commander $app->call('cmd')->listen();