aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bldit.lua6
-rw-r--r--include/lua_state.h4
-rw-r--r--src/is_updated.c12
-rw-r--r--src/lua_state.c10
-rw-r--r--src/vars.c2
5 files changed, 20 insertions, 14 deletions
diff --git a/bldit.lua b/bldit.lua
index 6efe80f..1770c79 100644
--- a/bldit.lua
+++ b/bldit.lua
@@ -1,7 +1,7 @@
-bldit_version = "1.0.0"
-package_version = "1.0.0"
+bldit_version = "1.1.3"
+package_version = "1.1.3"
-global_dependencies = {
+dependencies = {
luajit = {
url = "https://luajit.org/git/luajit.git",
version = "v2.1",
diff --git a/include/lua_state.h b/include/lua_state.h
index f8564b9..cfd0d5e 100644
--- a/include/lua_state.h
+++ b/include/lua_state.h
@@ -31,7 +31,7 @@ bool config_build(const char *path, const char *target);
bool config_install(const char *path, const char *target);
bool config_uninstall(const char *path, const char *target);
-char* bldit_getver(void);
-char* bldit_pkg_getver(void);
+const char* bldit_getver(void);
+const char* bldit_pkg_getver(void);
#endif \ No newline at end of file
diff --git a/src/is_updated.c b/src/is_updated.c
index 6ed53d3..66d7fb1 100644
--- a/src/is_updated.c
+++ b/src/is_updated.c
@@ -12,9 +12,10 @@
bool is_updated(const char *src) {
bool result = false;
if (src && strlen(src) > 0 && chdir(src) != 0) return result;
- char *bldit_pkgver = bldit_pkg_getver();
+ const char *bldit_pkgver = bldit_pkg_getver();
char *git_tag = cmd_out("git tag | tail -n 1");
- result = (strstr(git_tag, bldit_pkgver) != NULL);
+ if (bldit_pkgver && strcmp(bldit_pkgver, "") != 0)
+ 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);
@@ -23,8 +24,11 @@ bool is_updated(const char *src) {
}
bool is_bldit_usable() {
- char* bldit_version = bldit_getver();
- if (strcmp(bldit_version, version) == 0) return true;
+ const char* bldit_version = bldit_getver();
+ if (
+ strcmp(bldit_version, "") != 0 &&
+ 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;
diff --git a/src/lua_state.c b/src/lua_state.c
index a60fb7f..d6524fc 100644
--- a/src/lua_state.c
+++ b/src/lua_state.c
@@ -417,28 +417,30 @@ bool repo_uninstall(const char *repository, const char *target) {
return target_loop_success;
}
-char* bldit_getver() {
+const char* bldit_getver() {
init_bldit();
lua_getglobal(B, "bldit_version");
if (!lua_isstring(B, -1)) {
if (is_verbose)
printf("%s bldit.lua: 'bldit_version' is not a string.\n", print_warning);
+ lua_pop(B, 3);
return NULL;
}
const char* bldit_version = lua_tostring(B, -1);
- return strdup(bldit_version);
+ return bldit_version;
}
-char* bldit_pkg_getver() {
+const char* bldit_pkg_getver() {
init_bldit();
lua_getglobal(B, "package_version");
if (!lua_isstring(B, -1)) {
if (is_verbose)
printf("%s bldit.lua: 'package_version' is not a string.\n", print_warning);
+ lua_pop(B, 3);
return NULL;
}
const char* package_version = lua_tostring(B, -1);
- return strdup(package_version);
+ return package_version;
}
bool bldit(const char *target) {
diff --git a/src/vars.c b/src/vars.c
index cf679ec..45c018c 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -51,7 +51,7 @@ const char *get_install_dir(const char *key) {
return "";
}
-const char *version = "1.1.2";
+const char *version = "1.1.3";
const char *red = "\e[0;31m";
const char *green = "\e[0;32m";