aboutsummaryrefslogtreecommitdiff
path: root/src/build.c
diff options
context:
space:
mode:
authorforever2k38 <forever2k38@noreply.codeberg.org>2026-09-04 12:45:43 +0200
committerforever2k38 <forever2k38@noreply.codeberg.org>2026-09-04 12:45:43 +0200
commit7bf3c5b692f34bd6d9467ac3c651692c885a1d90 (patch)
treeea2d9abb30b1e4ce5451b52c11d782f6d14e5686 /src/build.c
parented979ea2b7cc0caf3abb47dce94e02ef16c73e65 (diff)
filesystem fuckery
Diffstat (limited to 'src/build.c')
-rw-r--r--src/build.c46
1 files changed, 44 insertions, 2 deletions
diff --git a/src/build.c b/src/build.c
index d680cf7..855b38b 100644
--- a/src/build.c
+++ b/src/build.c
@@ -1,5 +1,47 @@
#include "build.h"
-
#include "package.h"
+#include "paths.h"
+
+#include "lauxlib.h"
+#include "lua.h"
+#include "lualib.h"
+#include "stdio.h"
+#include "unistd.h"
+
+int pow_package_build(pow_package *pkg) {
+ if (pkg->pkg_ref == LUA_NOREF) {
+ printf("error! pkg_ref is equal to LUA_NOREF\n");
+
+ return 1;
+ }
+
+ lua_rawgeti(pkg->L, LUA_REGISTRYINDEX, pkg->pkg_ref);
+
+ char *tmp_path = NULL;
+
+ int err = pow_create_dir_for_package(&tmp_path);
+
+ if (err) {
+ printf("error creating temp dir for package\n");
+
+ return 1;
+ }
+
+ printf("%s\n", tmp_path);
+
+ if ((err = chdir(tmp_path))) {
+ printf("uh oh oops %d\n", err);
+ }
+
+ lua_getfield(pkg->L, -1, "build");
+
+ if (lua_pcall(pkg->L, 0, 0, 0) != LUA_OK) {
+ printf("error running script: %s\n", lua_tostring(pkg->L, -1));
+
+ return 1;
+ }
+
+ fflush(stdout);
-int pow_package_build(pow_package *pkg) { return 0; }
+ return 0;
+}