mirror of https://github.com/nealey/eris.git
32 lines
919 B
C
32 lines
919 B
C
/** g.cgi - CGI interface to cgit and git-http-backend
|
|
*
|
|
* This is a simple CGI to invoke cgit with a configuration
|
|
* file of your choice. It will also invoke git-http-backend
|
|
* if appropriate, which in my (very light) testing runs about
|
|
* twice as fast as plain HTTP with git-update-server-info.
|
|
*/
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
/* Set these to appropriate paths */
|
|
#define CGIT_CONFIG "/home/neale/public_html/cgitrc"
|
|
#define GIT_PROJECT_ROOT "/home/neale/projects"
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
char *uri = getenv("REQUEST_URI");
|
|
|
|
if (uri && strstr(uri, "git-upload-pack")) {
|
|
/* Use git-http-backend for great speed! */
|
|
setenv("GIT_PROJECT_ROOT", GIT_PROJECT_ROOT, 1);
|
|
execlp("git", "git", "http-backend", NULL);
|
|
} else {
|
|
setenv("CGIT_CONFIG", CGIT_CONFIG, 1);
|
|
execlp("cgit", "cgit", NULL);
|
|
}
|
|
|
|
return 0;
|
|
}
|