X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=gwvpmini%2Fgwvpmini_gitrepo.php;h=46c4f95790642942cf7b396bc49bd692dc60a575;hb=b35dc95efeb3c44390afc4eaa0aa295949ef2f9e;hp=1b1466a0337846c7a462562e6fa77fdf24bdc816;hpb=29d0a57aa6969a64216fa5d7a0a455043cf13094;p=gwvp-mini.git diff --git a/gwvpmini/gwvpmini_gitrepo.php b/gwvpmini/gwvpmini_gitrepo.php index 1b1466a..46c4f95 100644 --- a/gwvpmini/gwvpmini_gitrepo.php +++ b/gwvpmini/gwvpmini_gitrepo.php @@ -3,7 +3,7 @@ global $HOME_PAGE_PROVIDERS; $CALL_ME_FUNCTIONS["repoadmin"] = "gwvpmini_RepoCallMe"; -$HOME_PAGE_PROVIDERS["gitlog"] = "gwvpmini_GitLogProvider"; +$HOME_PAGE_PROVIDERS["00gitlog"] = "gwvpmini_GitLogProvider"; // the home_page_provders bit is an array @@ -15,15 +15,15 @@ $MENU_ITEMS["10repos"]["link"] = "$BASE_URL/repos"; function gwvpmini_RepoCallMe() { - error_log("in repoadmin callme - err?"); - error_log(print_r($_REQUEST, true)); + // error_log("in repoadmin callme - err?"); + // error_log(print_r($_REQUEST, true)); if(isset($_REQUEST["q"])) { - error_log("in repoadmin callme, for Q"); + // error_log("in repoadmin callme, for Q"); $query = $_REQUEST["q"]; $qspl = explode("/", $query); if(isset($qspl[0])) { if($qspl[0] == "repos") { - error_log("in repos call"); + // error_log("in repos call"); if(isset($qspl[1])) { if($qspl[1] == "create") { return "gwvpmini_RepoCreate"; @@ -31,7 +31,7 @@ function gwvpmini_RepoCallMe() return "gwvpmini_RepoMainPage"; } } else { - error_log("i got here, where next?"); + // error_log("i got here, where next?"); return "gwvpmini_RepoMainPage"; } } else return false; @@ -51,7 +51,8 @@ function gwvpmini_RepoMainPage() function gwvpmini_RepoMainPageBody() { - gwvpmini_GitCreateRepoForm(); + global $BASE_URL; + if(gwvpmini_isLoggedIn()) { $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]); if(!$repos) { @@ -62,17 +63,60 @@ function gwvpmini_RepoMainPageBody() foreach($repos as $repo) { $name = $repo["name"]; $desc = $repo["desc"]; - echo "$name$desc"; + $repo_base = gwvpmini_getConfigVal("repodir"); + $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null"; + echo "$name$desc"; echo ""; - $repo_base = gwvpmini_getConfigVal("repodir"); - $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1"; - error_log("CMD: $cmd"); - system("$cmd"); + // error_log("CMD: $cmd"); + //system("$cmd"); + $fls = popen($cmd, "r"); + $tks = ""; + if($fls !== false) while(!feof($fls)) { + $tks .= fread($fls,1024); + } + + if($tks == "") { + echo "No Log Info Yet"; + } else echo $tks; echo ""; echo ""; } echo ""; } + gwvpmini_GitCreateRepoForm(); + + + $contreps = gwvpmini_GetContributedRepos($_SESSION["username"]); + + if($contreps !== false) { + echo "

Repos you contribute to

"; + echo ""; + foreach($contreps as $repo) { + $name = $repo["name"]; + $desc = $repo["desc"]; + $repo_base = gwvpmini_getConfigVal("repodir"); + $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null"; + // error_log("CMD: $cmd"); + //system("$cmd"); + $fls = popen($cmd, "r"); + $tks = ""; + if($fls !== false) while(!feof($fls)) { + $tks .= fread($fls,1024); + } + + if($tks == "") { + $lastlog = "No Log Info Yet"; + } else $lastlog = $tks; + + $owner = gwvpmini_getUser(null, null, $repo["owner"]); + $repname = "$name"; + $repown = gwvpmini_HtmlGravatar($owner["email"], 30, "
")."".$owner["username"].""; + + + echo ""; + } + echo "
Repo NameOwnerRepo DescriptionLast Log
$repname$repown$desc$lastlog
"; + } } return true; } @@ -90,6 +134,9 @@ function gwvpmini_GitLogProvider() * * Or... should we instead just list every repo? */ + + global $BASE_URL; + echo "

Repo Activity

"; if(gwvpmini_isLoggedIn()) { $repos = gwvpmini_GetOwnedRepos($_SESSION["username"]); @@ -101,12 +148,21 @@ function gwvpmini_GitLogProvider() foreach($repos as $repo) { $name = $repo["name"]; $desc = $repo["desc"]; - echo "$name$desc"; + echo "$name$desc"; echo ""; $repo_base = gwvpmini_getConfigVal("repodir"); - $cmd = "git --git-dir=\"$repo_base/$name.git\" log -1 2>&1"; - error_log("CMD: $cmd"); - system("$cmd"); + $cmd = "git --git-dir=\"$repo_base/$name.git\" log --all -1 2> /dev/null"; + // error_log("CMD: $cmd"); + //system("$cmd"); + $fls = popen($cmd, "r"); + $tks = ""; + if($fls !== false) while(!feof($fls)) { + $tks .= fread($fls,1024); + } + + if($tks == "") { + echo "No Log Info Yet"; + } else echo $tks; echo ""; echo ""; } @@ -181,4 +237,47 @@ function gwvpmini_HaveRepo($reponame) if(file_exists("$repo_base/$reponame.git")) return true; } + +function gwvpmini_RemoveRepo($rid) +{ + $repo_base = gwvpmini_getConfigVal("repodir"); + + $repdet = gwvpmini_getRepo(null, null, $rid); + + $rname = $repdet["name"]; + + // error_log("FROM PANTS:".print_r($repdet,true)." ----------- ".print_r($rname, true)); + + if($repdet != false && $rname != "") { + if(file_exists("$repo_base/$rname.git")) { + // recursive remove - frightening + if(gwvpmini_RecursiveDelete("$repo_base/$rname.git")) { + gwvpmini_RemoveRepoDB($rid); + } + } + } return false; +} + +function gwvpmini_RecursiveDelete($fpath) +{ + // error_log("RECURSEDETELE: ".$fpath); + if(is_file($fpath)){ + return @unlink($fpath); + } + elseif(is_dir($fpath)){ + $scan = glob(rtrim($fpath,'/').'/*'); + foreach($scan as $index=>$path){ + gwvpmini_RecursiveDelete($path); + } + return @rmdir($fpath); + } +} + +function gwvpmini_CompressCommitId($cid) +{ + $compressedcid = substr($cid, 0, 5)."...".substr($cid, strlen($cid)-5, strlen($cid)); + + return $compressedcid; +} + ?> \ No newline at end of file