From a90517c4da83e892196113d3123e6499f88b07a4 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Wed, 18 Jun 2025 01:51:04 +0200 Subject: [PATCH] New footer that includes current commit --- .gitignore | 1 + build.c | 32 ++++++++++++++++++++++++++++++++ gebs | 2 +- routes.c | 9 +++++++++ tmpls/blog.html | 6 ++++-- tmpls/home.html | 5 ++++- tmpls/page-missing.html | 5 ++++- tmpls/template-blog.html | 5 ++++- 8 files changed, 59 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 6a173c5..279c17e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ aboba build gpp1 watcher +commit.h diff --git a/build.c b/build.c index 7328f35..58481c5 100644 --- a/build.c +++ b/build.c @@ -16,7 +16,11 @@ int main(int argc, char ** argv) RULE("./aboba", "./main.c", "./routes.c", + "./routes.h", "./baked.c", + "./baked.h", + "./clonestr.h", + "./commit.h" "./mongoose.o", "./gpp1", @@ -47,6 +51,34 @@ int main(int argc, char ** argv) CMD("cc", "-DHAVE_STRDUP", "-DHAVE_FNMATCH_H", "-o", "gpp1", "gpp/gpp.c"); } + RULE("./commit.h") { + String_Builder commit = {0}; + defer { sb_free(&commit); } + Cmd commit_get_cmd = {0}; + defer { cmd_free(&commit_get_cmd); } + cmd_append(&commit_get_cmd, "git"); + cmd_append(&commit_get_cmd, "rev-parse"); + cmd_append(&commit_get_cmd, "HEAD"); + cmd_run_collect(&commit_get_cmd, &commit); + commit.items[commit.count - 2] = '\0'; // \n -> \0 + + LOGI("Commit %s\n", commit.items); + + String_Builder header = {0}; + defer { sb_free(&header); } + + sb_append_nstr(&header, "#ifndef COMMIT_H_\n"); + sb_append_nstr(&header, "#define COMMIT_H_\n"); + sb_append_nstr(&header, fmt("#define COMMIT_STRING \"%s\"\n", commit.items)); + sb_append_nstr(&header, "#endif // COMMIT_H_\n"); + + FILE *out = fopen("./commit.h", "w"); + if (out) { + fwrite(header.items, header.count, 1, out); + fclose(out); + } + } + #if DEBUG CMD("cc", "-fPIC", "-ggdb", "-I.", "-DDEBUG=1", "-D_GNU_SOURCE", "-DGEBS_NO_PREFIX", "-DINCBIN_PREFIX=", "-DINCBIN_STYLE=INCBIN_STYLE_SNAKE", "-Wl,-z,execstack", "-o", "./aboba", diff --git a/gebs b/gebs index d8e1d54..c3be4ce 160000 --- a/gebs +++ b/gebs @@ -1 +1 @@ -Subproject commit d8e1d54f3db0db738c72fffbd69e1ade58f6cc47 +Subproject commit c3be4ce8ee4632b12db6bccf8b22ec68d4f64773 diff --git a/routes.c b/routes.c index 3dcb438..5175398 100644 --- a/routes.c +++ b/routes.c @@ -6,6 +6,7 @@ #include "routes.h" #include "baked.h" #include "clonestr.h" +#include "commit.h" #define INTERNAL_SERVER_ERROR_MSG "Internal server error ;(. Try again later..." @@ -106,6 +107,8 @@ ROUTE_HANDLER(page_not_found) return; } + list_append(&env, fmt("-DCOMMIT=%s", COMMIT_STRING)); + #if DEBUG list_append(&env, "-DHOTRELOAD=1"); #else @@ -192,6 +195,8 @@ ROUTE_HANDLER(home) make_internal_server_error(result); return; } + + list_append(&env, fmt("-DCOMMIT=%s", COMMIT_STRING)); #if DEBUG list_append(&env, "-DHOTRELOAD=1"); @@ -225,6 +230,8 @@ ROUTE_HANDLER(generic_blog) return; } + list_append(&env, fmt("-DCOMMIT=%s", COMMIT_STRING)); + #if DEBUG list_append(&env, "-DHOTRELOAD=1"); #else @@ -310,6 +317,8 @@ ROUTE_HANDLER(blog) make_internal_server_error(result); return; } + + list_append(&env, fmt("-DCOMMIT=%s", COMMIT_STRING)); #if DEBUG list_append(&env, "-DHOTRELOAD=1"); diff --git a/tmpls/blog.html b/tmpls/blog.html index 6552882..0e0f44c 100644 --- a/tmpls/blog.html +++ b/tmpls/blog.html @@ -14,9 +14,11 @@ - <#if HOTRELOAD> diff --git a/tmpls/home.html b/tmpls/home.html index 8784744..292c54c 100644 --- a/tmpls/home.html +++ b/tmpls/home.html @@ -46,7 +46,10 @@ <#if HOTRELOAD> diff --git a/tmpls/page-missing.html b/tmpls/page-missing.html index 52f7070..402fa00 100644 --- a/tmpls/page-missing.html +++ b/tmpls/page-missing.html @@ -10,7 +10,10 @@ URL was: <#URL>

<#if HOTRELOAD> diff --git a/tmpls/template-blog.html b/tmpls/template-blog.html index d6430c9..ff4b235 100644 --- a/tmpls/template-blog.html +++ b/tmpls/template-blog.html @@ -8,7 +8,10 @@