stagit

static git page generator (local tweaks)
git clone https://wehaveforgeathome.hates.computer/stagit.git
Log | Files | Refs | LICENSE

commit 2525ab87dc9207e6b7166536bdba6b030315c5ef
parent 293e00857a1605229efa888988392d1c16f67e63
Author: Ryan Wolf <johnwayne@pseudony.ms>
Date:   Wed, 16 Apr 2025 23:09:46 -0400

write readme to index, crash if missing

Diffstat:
Mstagit.c | 25++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/stagit.c b/stagit.c @@ -1181,6 +1181,18 @@ writerefs(FILE *fp) return 0; } +int +writeindex(git_object *obj) +{ + const char *entryname; + char filepath[PATH_MAX], entrypath[PATH_MAX], oid[8]; + size_t filesize; + filesize = git_blob_rawsize((git_blob *)obj); + writeblob(obj, "index.html", "", filesize); + return 0; +} + + void usage(char *argv0) { @@ -1193,6 +1205,7 @@ int main(int argc, char *argv[]) { git_object *obj = NULL; + git_object *readme_obj = NULL; const git_oid *head = NULL; mode_t mask; FILE *fp, *fpread; @@ -1316,10 +1329,9 @@ main(int argc, char *argv[]) /* check README */ for (i = 0; i < LEN(readmefiles) && !readme; i++) { - if (!git_revparse_single(&obj, repo, readmefiles[i]) && - git_object_type(obj) == GIT_OBJ_BLOB) + if (!git_revparse_single(&readme_obj, repo, readmefiles[i]) && + git_object_type(readme_obj) == GIT_OBJ_BLOB) readme = readmefiles[i] + strlen("HEAD:"); - git_object_free(obj); } if (!git_revparse_single(&obj, repo, "HEAD:.gitmodules") && @@ -1412,6 +1424,13 @@ main(int argc, char *argv[]) checkfileerror(fp, "tags.xml", 'w'); fclose(fp); + /* index */ + if (!readme) { + err(1, "no readme, can't write index"); + } + writeindex(readme_obj); + git_object_free(readme_obj); + /* rename new cache file on success */ if (cachefile && head) { if (rename(tmppath, cachefile))