From a18b7108f1648dc69e06bb21e84ec48a2dd60f60 Mon Sep 17 00:00:00 2001 From: dacctal Date: Mon, 22 Jun 2026 07:33:06 +0000 Subject: command line args are much nicer, and versions are properly disciplined --- src/is_updated.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'src/is_updated.c') diff --git a/src/is_updated.c b/src/is_updated.c index 68e6d2e..6ed53d3 100644 --- a/src/is_updated.c +++ b/src/is_updated.c @@ -5,15 +5,33 @@ #include #include "is_updated.h" + #include "cmd_out.h" +#include "lua_state.h" bool is_updated(const char *src) { - if (src && strlen(src) > 0 && chdir(src) != 0) { - return false; - } - - char *output = cmd_out("git pull"); - bool result = (strstr(output, "Already up to date.") != NULL); - free(output); + bool result = false; + if (src && strlen(src) > 0 && chdir(src) != 0) return result; + char *bldit_pkgver = bldit_pkg_getver(); + char *git_tag = cmd_out("git tag | tail -n 1"); + result = (strstr(git_tag, bldit_pkgver) != NULL); + char *git_pull = cmd_out("git pull"); + result = (strstr(git_pull, "Already up to date.") != NULL); + free(git_tag); + free(git_pull); return result; +} + +bool is_bldit_usable() { + char* bldit_version = bldit_getver(); + if (strcmp(bldit_version, version) == 0) return true; + bool prev_pass = false; + for (int i = 0; i < strlen(bldit_version); i++) { + if (bldit_version[i] == '.') continue; + if ((bldit_version[i] - '0') <= (version[i] - '0')) { + prev_pass = ((bldit_version[i] - '0') != (version[i] - '0')); + continue; + } else return prev_pass; + } + return true; } \ No newline at end of file -- cgit v1.2.3