/**
  * Gets hook handler class instance
  *
  * @param array $argv
  * @return AbstractHandler
  */
 public static function &get_handler(array $argv)
 {
     $handler_name = self::hook_name_to_handler_class(isset($argv[1]) ? $argv[1] : '');
     dbg::get_instance()->write('handler name: ' . $handler_name);
     if (class_exists($handler_name)) {
         unset($argv[0]);
         unset($argv[1]);
         $out = new $handler_name(array_values($argv));
     } else {
         $out = null;
     }
     return $out;
 }
예제 #2
0
 /**
  * Prepares commands list
  *
  * @return bool
  */
 public function prepare()
 {
     $conf = SVNHooksConfig::get_instance();
     $ex_str = sprintf("%s info %s -r %s 2>&1", $conf->svnlook, $this->repos, $this->rev);
     exec($ex_str, $out, $code);
     dbg::get_instance()->write('PostCommitHandler::prepare exec result: ' . $code);
     dbg::get_instance()->write('PostCommitHandler::prepare exec output: ' . var_export($out, true));
     if ($code) {
         return false;
     }
     $this->revision_wrapper = new SVNRevisionWrapper($this->rev, $out);
     dbg::get_instance()->write('PostCommitHandler::prepare SVNRevisionWrapper: ' . var_export($this->revision_wrapper, true));
     $this->commands[] = new CommandActiveUser($this->revision_wrapper->author);
     if (!$this->parse_comment_into_commands()) {
         return false;
     }
     return count($this->commands) > 1;
 }
예제 #3
0
 /**
  * Send commands to flyspray
  *
  * @param string $url
  * @param string $cookie_file
  * @param string $data JSON encoded array of commands
  * @throws Exception
  */
 private function transfer($url, $cookie_file, $data)
 {
     try {
         dbg::get_instance()->write("Commands to transfer:\r\n" . $data);
         $result = $this->send_request($url, $cookie_file, "commands={$data}");
         dbg::get_instance()->write("transfer result:\r\n" . $result);
     } catch (Exception $exc) {
         dbg::get_instance()->write("AbstractHandler::transfer threw Exception");
         throw $exc;
     }
 }
예제 #4
0
파일: handler.php 프로젝트: negram/flyspray
require_once 'classes/class.FSConfig.php';
require_once 'classes/class.SVNHooksConfig.php';
require_once 'classes/flyspray/class.FlySprayCommand.php';
require_once 'classes/class.SVNRevisionWrapper.php';
require_once 'classes/class.dbg.php';
require_once 'classes/class.SVNHooksHandlerFactory.php';
require_once 'classes/handlers/class.AbstractHandler.php';
require_once 'classes/handlers/class.PostCommitHandler.php';
require_once 'classes/flyspray/class.CommandAddVote.php';
require_once 'classes/flyspray/class.CommandAddUserToGroup.php';
require_once 'classes/flyspray/class.CommandCloseTask.php';
require_once 'classes/flyspray/class.CommandEditTask.php';
require_once 'classes/flyspray/class.CommandAssignToMe.php';
require_once 'classes/flyspray/class.FlySprayResponse.php';
require_once 'classes/flyspray/class.CommandActiveUser.php';
require_once 'classes/flyspray/class.CommandAddComment.php';
require_once 'classes/flyspray/class.CommandAddToAssignees.php';
require_once 'classes/flyspray/class.CommandAddNotification.php';
require_once 'classes/flyspray/class.CommandRemoveNotification.php';
if (!isset($argv)) {
    $argv = array();
}
dbg::get_instance()->write('argv: ' . var_export($argv, true));
$handler = SVNHooksHandlerFactory::get_handler($argv);
dbg::get_instance()->write('handler: ' . var_export($handler, true));
if (!is_null($handler)) {
    if ($handler->prepare()) {
        $handler->send();
    }
}