diff options
Diffstat (limited to 'src/build.c')
| -rw-r--r-- | src/build.c | 46 |
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; +} |
