aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lua_state.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/lua_state.c b/src/lua_state.c
index fe7d94f..3418dde 100644
--- a/src/lua_state.c
+++ b/src/lua_state.c
@@ -188,7 +188,6 @@ bool bldit(const char *target) {
lua_close(B);
return false;
}
-
if (lua_pcall(B, 0, 0, 0) != LUA_OK) {
printf("build failed: %s\n", lua_tostring(B, -1));
lua_pop(B, 1);
@@ -196,9 +195,38 @@ bool bldit(const char *target) {
lua_close(B);
return false;
}
+ printf("%sbldit function 'build' ran successfully.\n", print_pkgit);
+
+ lua_getfield(B, -1, "pre_install");
+ if (!lua_isfunction(B, -1)) {
+ printf("%s'repositories' lua variable 'pre_install' is not a function.\n", print_warning);
+ }
+ if (lua_pcall(B, 0, 0, 0) != LUA_OK) {
+ printf("build failed: %s\n", lua_tostring(B, -1));
+ }
+ printf("%sbldit function 'pre_install' ran successfully.\n", print_pkgit);
+
+ lua_getfield(B, -1, "install");
+ if (!lua_isfunction(B, -1)) {
+ printf("%s'repositories' lua variable 'install' is not a function.\n", print_warning);
+ } else {
+ is_auto_installed = false;
+ }
+ if (lua_pcall(B, 0, 0, 0) != LUA_OK) {
+ printf("build failed: %s\n", lua_tostring(B, -1));
+ }
+ printf("%sbldit function 'install' ran successfully.\n", print_pkgit);
+
+ lua_getfield(B, -1, "post_install");
+ if (!lua_isfunction(B, -1)) {
+ printf("%s'repositories' lua variable 'post_install' is not a function.\n", print_warning);
+ }
+ if (lua_pcall(B, 0, 0, 0) != LUA_OK) {
+ printf("build failed: %s\n", lua_tostring(B, -1));
+ }
+ printf("%sbldit function 'post_install' ran successfully.\n", print_pkgit);
lua_pop(B, 2);
- printf("%sbldit function 'build' ran successfully.\n", print_pkgit);
lua_close(B);
return true;
}