xs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/env php
  2. <?php
  3. /**
  4. * Xunsearch PHP-SDK 命令行工具集入口
  5. *
  6. * @author hightman
  7. * @link http://www.xunsearch.com/
  8. * @copyright Copyright &copy; 2011 HangZhou YunSheng Network Technology Co., Ltd.
  9. * @license http://www.xunsearch.com/license/
  10. * @version $Id$
  11. */
  12. $commands = array(
  13. 'index' => 'Indexer.php',
  14. 'search' => 'Quest.php',
  15. 'quest' => 'Quest.php',
  16. 'log' => 'Logger.php',
  17. 'check' => 'RequiredCheck.php',
  18. 'skel' => 'SearchSkel.php',
  19. );
  20. $cmd = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : 'help';
  21. if ($cmd !== 'help' && $cmd !== '-h' && $cmd !== '--help') {
  22. if (isset($commands[$cmd])) {
  23. $_SERVER['argv'][1] = $_SERVER['argv'][0] . ' ' . $cmd;
  24. array_shift($_SERVER['argv']);
  25. ob_start('strip_head_line');
  26. require dirname(__FILE__) . '/' . $commands[$cmd];
  27. ob_end_flush();
  28. } else {
  29. echo $_SERVER['argv'][0] . ':未定义的指令 \'' . $cmd . '\',详见:\'' . $_SERVER['argv'][0] . ' help\'。';
  30. echo "\n";
  31. exit(-1);
  32. }
  33. } else {
  34. echo <<<EOF
  35. 用法:{$_SERVER['argv'][0]} <cmd> [args]
  36. 支持的命令如下:
  37. index 索引管理、导入工具
  38. search|quest 搜索查询及测试工具
  39. log 搜索日志管理工具
  40. skel 搜索骨架代码生成工具
  41. check 运行需求检查报告
  42. help 显示本页帮助信息
  43. 除 'help' 外,其它命令均可传入 -h 或 --help 参数查看具体的使用说明。
  44. EOF;
  45. exit(0);
  46. }
  47. // strip head line
  48. function strip_head_line($buf)
  49. {
  50. if (!strncmp($buf, '#!/usr/bin', 10)) {
  51. $buf = substr($buf, strpos($buf, "\n") + 1);
  52. }
  53. return $buf;
  54. }