diff options
| author | dacctal <dacctal@symlinx.net> | 2026-06-22 07:33:06 +0000 |
|---|---|---|
| committer | dacctal <dacctal@symlinx.net> | 2026-06-22 07:33:06 +0000 |
| commit | a18b7108f1648dc69e06bb21e84ec48a2dd60f60 (patch) | |
| tree | 1693a64a18913d751b0e9a23609218bf0d24f01c /src/is_updated.c | |
| parent | 7cde9aeb5dccce578c1eed13cf1ed2c61e446800 (diff) | |
command line args are much nicer, and versions are properly disciplined1.0.0
Diffstat (limited to 'src/is_updated.c')
| -rw-r--r-- | src/is_updated.c | 32 |
1 files changed, 25 insertions, 7 deletions
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 <unistd.h> #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 |
