diff options
author | Christoph Burschka | 2016-09-25 15:25:59 +0200 |
---|---|---|
committer | Christoph Burschka | 2016-09-25 13:43:27 +0000 |
commit | cc202c462f34fff212d3e51a095c63008c20b050 (patch) | |
tree | ff1f6cd43e9ef088357830a9fd2a0cc2bc44701f /main.php | |
parent | Fix the JSON content type. (diff) | |
download | ejabberd-auth-php-cc202c462f34fff212d3e51a095c63008c20b050.tar.gz |
Fix #16 Accept command-line arguments.
If main.php is called with commandline arguments, these will be passed
to the bridge as a single request, instead of running the bridge as a daemon.
The arguments are, in order: <command> <username> <server> <password>
The result will be printed to stdout (1 for success, 0 for failure),
and will be set as the exit status (0 for success, 1 for failure).
Diffstat (limited to 'main.php')
-rwxr-xr-x | main.php | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -10,18 +10,25 @@ main(); function main() { require_once ROOT . 'config.php'; $plugin_file = 'plugins/' . $config['plugin'] . '/' . $config['plugin'] . '.module'; - if (file_exists(ROOT . $plugin_file)) { - require_once ROOT . $plugin_file; - $function = $config['plugin'] . '_init'; - $bridge = $function($config['plugin_conf']); - } - else { + if (!file_exists(ROOT . $plugin_file)) { return fwrite(STDERR, "Plugin <{$plugin_file}> not found.\n"); } + + require_once ROOT . $plugin_file; + $function = $config['plugin'] . '_init'; + $bridge = $function($config['plugin_conf']); + if (!empty($config['session'])) { require_once 'plugins/session/session.module'; $session = session_init($config['session']); } else $session = NULL; - (new EjabberdAuth($config, $bridge, $session))->run(); + + $main = new EjabberdAuth($config, $bridge, $session); + if ($_SERVER['argc'] > 1) { + $result = $main->execute(array_slice($_SERVER['argv'], 1)); + print(($result ? 1 : 0) . "\n"); + exit($result ? 0 : 1); + } + $main->run(); } |