logo

stagit

STAtic GIT web view generator (in C) git clone https://hacktivis.me/git/stagit.git
commit: 1778cba9794bbe5624db907bda2d065c971405b7
parent 955c3779ef1ad080b1b8a2f9746d766fdc74cb7e
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sat, 26 Dec 2015 12:55:59 +0100

allow to specify clone url, displayed in header

Diffstat:

Murmoms.c25++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/urmoms.c b/urmoms.c @@ -44,6 +44,7 @@ static const char *repodir; static char name[255]; static char description[255]; +static char cloneurl[1024]; static int hasreadme, haslicense; void @@ -232,7 +233,15 @@ writeheader(FILE *fp) xmlencode(fp, name, strlen(name)); fputs("</h1><span class=\"desc\">", fp); xmlencode(fp, description, strlen(description)); - fputs("</span></td></tr><tr><td></td><td>\n", fp); + fputs("</span></td></tr>", fp); + if (cloneurl[0]) { + fputs("<tr class=\"url\"><td></td><td>git clone <a href=\"", fp); + xmlencode(fp, cloneurl, strlen(cloneurl)); + fputs("\">", fp); + xmlencode(fp, cloneurl, strlen(cloneurl)); + fputs("</a></td></tr>", fp); + } + fputs("<tr><td></td><td>\n", fp); fprintf(fp, "<a href=\"%slog.html\">Log</a> | ", relpath); fprintf(fp, "<a href=\"%sfiles.html\">Files</a>", relpath); if (hasreadme) @@ -730,6 +739,20 @@ main(int argc, char *argv[]) fclose(fpread); } + /* read url or .git/url */ + snprintf(path, sizeof(path), "%s%s%s", + repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "url"); + if (!(fpread = fopen(path, "r"))) { + snprintf(path, sizeof(path), "%s%s%s", + repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/url"); + fpread = fopen(path, "r"); + } + if (fpread) { + if (!fgets(cloneurl, sizeof(cloneurl), fpread)) + cloneurl[0] = '\0'; + fclose(fpread); + } + /* check LICENSE */ haslicense = !git_revparse_single(&obj, repo, "HEAD:LICENSE"); git_object_free(obj);