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 @@