X-Git-Url: http://git.pjr.cc/?p=gwvp-mini.git;a=blobdiff_plain;f=bin%2Fgwvpminicmdtool.php;h=c42c8bf3cdbf83fe7d8011f8c82830a28195bfdd;hp=1b532650b9c2ae4f0697389712e51aec96ec704f;hb=b35dc95efeb3c44390afc4eaa0aa295949ef2f9e;hpb=eaa989c5b3d6534276be3c32e089d4ec2b45e395 diff --git a/bin/gwvpminicmdtool.php b/bin/gwvpminicmdtool.php index 1b53265..c42c8bf 100644 --- a/bin/gwvpminicmdtool.php +++ b/bin/gwvpminicmdtool.php @@ -13,8 +13,12 @@ else $noconfig = true; if(file_exists("$WEB_ROOT_FS/../gwvpmini/gwvpmini.php")) require_once("$WEB_ROOT_FS/../gwvpmini/gwvpmini.php"); else if(file_exists("/usr/share/gwvpmini/lib/gwvpmini/gwvpmini.php")) require_once("/usr/share/gwvpmini/lib/gwvpmini/gwvpmini.php"); -if(isset($argv["1"])) { - switch($argv["1"]) { + +echo "ARGS: ".print_r($argv,true); +echo "CWD: ".getcwd()."\n"; + +if(isset($argv["3"])) { + switch($argv["3"]) { case "update": gwvpcmdtool_UpdateHook(); break; @@ -28,13 +32,39 @@ if(isset($argv["1"])) { return; +/* + * remote: ARGS: Array +remote: ( +remote: [0] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php +remote: [1] => asfd +remote: [2] => admin +remote: [3] => pre-receive +remote: [4] => fc781c4ef5bfeae8ec01bb527db1b6ce6f65d03c +remote: [5] => 7d45d43f04276fc9addb77ba8bf753329eab018d +remote: [6] => refs/heads/master +remote: ) +remote: ARGS: Array +remote: ( +remote: [0] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php +remote: [1] => asfd +remote: [2] => admin +remote: [3] => pre-receive +remote: [4] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php +remote: [5] => asfd +remote: [6] => admin +remote: [7] => update +remote: [8] => refs/heads/master +remote: [9] => fc781c4ef5bfeae8ec01bb527db1b6ce6f65d03c +remote: [10] => 7d45d43f04276fc9addb77ba8bf753329eab018d + + */ + function gwvpcmdtool_Usage() { global $argv; - echo "Usage: ".$argv[0]."\n"; - echo "\tupdatehook \n"; + echo "Usage: ".$argv[0]." this tool should not be called directly by user\n"; } @@ -43,15 +73,20 @@ function gwvpcmdtool_UpdateHook() { global $argv; //echo "got ".$argv[2].", ".$argv[3].", ".$argv[4]."\n"; - if(preg_match("/^000000+$/", $argv[3])) { + if(preg_match("/^000000+$/", $argv[5])) { // createion of tag or branch - $vals = explode("/", $argv[2]); + $vals = explode("/", $argv[4]); $type = "unknowncreate"; - if($vals == "heads") $type = "branchcreate"; - if($vals == "tags") $type = "tagcreate"; - gwvpmini_AddActivityLog("$type", "1", "1", $argv[4], "somelogs"); + if($vals[1] == "heads") $type = "branchcreate"; + if($vals[1] == "tags") $type = "tagcreate"; + + //gwvpmini_AddRefActivityForRepo(); + gwvpmini_AddRefActivityForRepo($argv[1], $argv[2], $vals[2], $type); + echo "REFSUP: ".$vals[2].", $type\n"; + } //gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog) + //gwvpmini_AddRefActivityForRepo($reponame, $byusername, $branchname, $acttype="branch") } // pre-receive logs all commit info @@ -61,6 +96,44 @@ function gwvpcmdtool_PreReceive() //echo "got from prereceive ".$argv[2].", ".$argv[3].", ".$argv[4]."\n"; - //passthru("git rev-list --reverse ".$argv[3]." --not --all "); + $lns = 0; + $ref = $argv[6]; + + $regspl = explode("/", $ref); + $branch = $regspl[2]; + + $fp = popen("git rev-list --reverse ".$argv[5]." --not --all ", "r"); + if($fp) while(!feof($fp)) { + $line = trim(fgets($fp)); + if($line != "") { + $cdd[$lns] = gwvpcmdtool_getCommitIdDetails($line); + echo "FORCID $line we get \n".print_r($cdd[$lns], true); + gwvpmini_AddCommitActivityForRepo($argv[1], $argv[2], $line, $cdd[$lns]["log"], $branch); + $lns++; + } + } + + + //echo "Called git rev-list --reverse ".$argv[5]." --not --all\n\n"; + //gwvpmini_AddCommitActivityForRepo($reponame, $byusername, $commitid, $desc) +} + +function gwvpcmdtool_getCommitIdDetails($commitid) +{ + $rs = popen("git log --pretty=format:\"%at%n%ce%n%an%n%s\" $commitid -1 2> /dev/null", "r"); + $ret = array(); + if($rs) { + $ret["date"] = trim(fgets($rs)); + $ret["email"] = trim(fgets($rs)); + $ret["fullname"] = trim(fgets($rs)); + $ret["log"] = ""; + while(!feof($rs)) { + $ret["log"] .= fread($rs, 8192); + } + } else { + $ret = false; + } + + return $ret; } ?> \ No newline at end of file