3 $WEB_ROOT_FS = realpath(dirname(__FILE__));
6 global $WEB_ROOT_FS, $BASE_URL, $IS_WEB_REQUEST, $data_directory, $db_type, $db_name, $db_username, $db_password, $IS_WEB_REQUEST, $cmd_line_tool;
7 $IS_WEB_REQUEST = false;
\r
9 if(file_exists("$WEB_ROOT_FS/../www/config.php")) require_once("$WEB_ROOT_FS/../www/config.php");
10 else if(file_exists("/etc/gwvpmini/config.php")) require_once("/etc/gwvpmini/config.php");
11 else $noconfig = true;
13 if(file_exists("$WEB_ROOT_FS/../gwvpmini/gwvpmini.php")) require_once("$WEB_ROOT_FS/../gwvpmini/gwvpmini.php");
14 else if(file_exists("/usr/share/gwvpmini/lib/gwvpmini/gwvpmini.php")) require_once("/usr/share/gwvpmini/lib/gwvpmini/gwvpmini.php");
17 echo "ARGS: ".print_r($argv,true);
18 echo "CWD: ".getcwd()."\n";
20 if(isset($argv["3"])) {
23 gwvpcmdtool_UpdateHook();
26 gwvpcmdtool_PreReceive();
28 case "backgroundclone":
29 gwvpcmdtool_BackGroundClone();
34 } else gwvpcmdtool_Usage();
41 remote: [0] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php
44 remote: [3] => pre-receive
45 remote: [4] => fc781c4ef5bfeae8ec01bb527db1b6ce6f65d03c
46 remote: [5] => 7d45d43f04276fc9addb77ba8bf753329eab018d
47 remote: [6] => refs/heads/master
51 remote: [0] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php
54 remote: [3] => pre-receive
55 remote: [4] => /nfs/export/src/local/eclipse-workspace/gwvp-mini/bin/gwvpminicmdtool.php
59 remote: [8] => refs/heads/master
60 remote: [9] => fc781c4ef5bfeae8ec01bb527db1b6ce6f65d03c
61 remote: [10] => 7d45d43f04276fc9addb77ba8bf753329eab018d
66 function gwvpcmdtool_Usage()
70 echo "Usage: ".$argv[0]." this tool should not be called directly by user\n";
74 function gwvpcmdtool_BackGroundClone()
76 // here we parse arguments and have stuff with things and its 6am why am i doing this right now?
77 global $data_directory, $argv;
79 $repo_base = gwvpmini_getConfigVal("repodir");
83 echo "Would actually clone $from to $to in $data_directory\n";
86 $cmd = "git clone --bare $from $repo_base/$to.git";
88 $rid = gwvpmini_GetRepoId($to);
89 gwvpmini_EnableRepo($rid);
90 echo "update $to ($rid) and enabled it\n";
93 // update will log things like branch and tag creations
94 function gwvpcmdtool_UpdateHook()
97 //echo "got ".$argv[2].", ".$argv[3].", ".$argv[4]."\n";
98 if(preg_match("/^000000+$/", $argv[5])) {
99 // createion of tag or branch
100 $vals = explode("/", $argv[4]);
101 $type = "unknowncreate";
102 if($vals[1] == "heads") $type = "branchcreate";
103 if($vals[1] == "tags") $type = "tagcreate";
105 //gwvpmini_AddRefActivityForRepo();
106 gwvpmini_AddRefActivityForRepo($argv[1], $argv[2], $vals[2], $type);
107 echo "REFSUP: ".$vals[2].", $type\n";
\r
110 //gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog)
111 //gwvpmini_AddRefActivityForRepo($reponame, $byusername, $branchname, $acttype="branch")
114 // pre-receive logs all commit info
115 function gwvpcmdtool_PreReceive()
119 //echo "got from prereceive ".$argv[2].", ".$argv[3].", ".$argv[4]."\n";
\r
124 $regspl = explode("/", $ref);
125 $branch = $regspl[2];
127 $fp = popen("git rev-list --reverse ".$argv[5]." --not --all ", "r");
128 if($fp) while(!feof($fp)) {
129 $line = trim(fgets($fp));
131 $cdd[$lns] = gwvpcmdtool_getCommitIdDetails($line);
132 echo "FORCID $line we get \n".print_r($cdd[$lns], true);
133 gwvpmini_AddCommitActivityForRepo($argv[1], $argv[2], $line, $cdd[$lns]["log"], $branch);
139 //echo "Called git rev-list --reverse ".$argv[5]." --not --all\n\n";
140 //gwvpmini_AddCommitActivityForRepo($reponame, $byusername, $commitid, $desc)
143 function gwvpcmdtool_getCommitIdDetails($commitid)
145 $rs = popen("git log --pretty=format:\"%at%n%ce%n%an%n%s\" $commitid -1 2> /dev/null", "r");
148 $ret["date"] = trim(fgets($rs));
\r
149 $ret["email"] = trim(fgets($rs));
\r
150 $ret["fullname"] = trim(fgets($rs));
152 while(!feof($rs)) {
\r
153 $ret["log"] .= fread($rs, 8192);
\r