config

NixOS config
Log | Files | Refs | README | LICENSE

commit 4367b6312c8a816eea381e10bbac30747fd26cc4 (tree)
parent f9f31f54d8f46a453cf42dceb79356c9c11aabca
Author: Motiejus Jakštys <motiejus@jakstys.lt>
Date:   Mon, 29 Jun 2026 13:07:07 +0000

generate index.html properly

Diffstat:
Mmodules/services/git/default.nix | 8++------
Mmodules/services/git/raw-link.patch | 37++++++++++++++++++++++++++++++++++++-
2 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/modules/services/git/default.nix b/modules/services/git/default.nix @@ -38,12 +38,8 @@ let cd "$outdir" stagit -c "$cachefile" "$repo" - if [ -f "$outdir/file/README.md.html" ]; then - ln -sf file/README.md.html index.html - elif [ -f "$outdir/file/README.html" ]; then - ln -sf file/README.html index.html - else - ln -sf log.html index.html + if [ ! -f "$outdir/index.html" ]; then + ln -sf log.html "$outdir/index.html" fi rm -rf "$outdir/raw" diff --git a/modules/services/git/raw-link.patch b/modules/services/git/raw-link.patch @@ -12,7 +12,7 @@ index 6402296bd1c0..c5cd9e4d16e8 100644 fputs("</a></td><td>", fp); xmlencode(fp, description, strlen(description)); diff --git a/stagit.c b/stagit.c -index 409714b728ef..5e8d8489748d 100644 +index 409714b728ef..cbaa4744a5c4 100644 --- a/stagit.c +++ b/stagit.c @@ -947,7 +947,7 @@ writeatom(FILE *fp, int all) @@ -44,3 +44,38 @@ index 409714b728ef..5e8d8489748d 100644 fputs("<tr><td>", fp); fputs(filemode(git_tree_entry_filemode(entry)), fp); +@@ -1400,6 +1402,34 @@ main(int argc, char *argv[]) + checkfileerror(fp, "refs.html", 'w'); + fclose(fp); + ++ /* index page: README if available */ ++ if (readme) { ++ char readmeref[PATH_MAX]; ++ git_object *readmeobj = NULL; ++ ++ snprintf(readmeref, sizeof(readmeref), "HEAD:%s", readme); ++ if (!git_revparse_single(&readmeobj, repo, readmeref)) { ++ fp = efopen("index.html", "w"); ++ relpath = ""; ++ writeheader(fp, readme); ++ fputs("<p> ", fp); ++ xmlencode(fp, readme, strlen(readme)); ++ fprintf(fp, " (%zuB) - <a href=\"raw/", ++ git_blob_rawsize((git_blob *)readmeobj)); ++ percentencode(fp, readme, strlen(readme)); ++ fputs("\">Raw</a>", fp); ++ fputs("</p><hr/>", fp); ++ if (git_blob_is_binary((git_blob *)readmeobj)) ++ fputs("<p>Binary file.</p>\n", fp); ++ else ++ writeblobhtml(fp, (git_blob *)readmeobj); ++ writefooter(fp); ++ checkfileerror(fp, "index.html", 'w'); ++ fclose(fp); ++ git_object_free(readmeobj); ++ } ++ } ++ + /* Atom feed */ + fp = efopen("atom.xml", "w"); + writeatom(fp, 1);