diff options
Diffstat (limited to 'snag/src/package_db.c')
| -rw-r--r-- | snag/src/package_db.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/snag/src/package_db.c b/snag/src/package_db.c index 036e284..a04c47b 100644 --- a/snag/src/package_db.c +++ b/snag/src/package_db.c @@ -1,4 +1,6 @@ #include "package_db.h" + +#include "cfg.h" #include "util.h" #include <stdio.h> @@ -8,12 +10,6 @@ #include <sys/wait.h> #include <errno.h> -#define PKG_INFO_CMD "./scripts/get_pkg_attrs.sh" - -// note: fixed location of package database for now -const char pkg_db[] = "./var/snag/packages"; -const size_t pkg_db_len = sizeof(pkg_db) - 1; - bool load_package_info(char* pkgid, package_info_t* info) { memset(info, 0, sizeof(*info)); @@ -21,12 +17,12 @@ bool load_package_info(char* pkgid, package_info_t* info) { // construct package description directory path and ensure it exists // pkg_dir = "pkg_db/pkgid" - size_t pkg_dir_len = pkg_db_len + pkgid_len + 1; + size_t pkg_dir_len = cfg.package_db_len + pkgid_len + 1; char* pkg_dir = emalloc(pkg_dir_len + 1, "pkg_dir"); { - memcpy(pkg_dir, pkg_db, pkg_db_len); - pkg_dir[pkg_db_len] = '/'; - memcpy(pkg_dir + pkg_db_len + 1, pkgid, pkgid_len); + memcpy(pkg_dir, cfg.package_db, cfg.package_db_len); + pkg_dir[cfg.package_db_len] = '/'; + memcpy(pkg_dir + cfg.package_db_len + 1, pkgid, pkgid_len); pkg_dir[pkg_dir_len] = '\0'; if (access(pkg_dir, F_OK) != 0) { print("Package '%s' not found\n", pkgid); @@ -66,11 +62,11 @@ bool load_package_info(char* pkgid, package_info_t* info) { dup2(pipefds[1], STDOUT_FILENO); close(pipefds[1]); // exec into get attr script - char* argv[] = { PKG_INFO_CMD, info->script_path, NULL }; + char* argv[] = { cfg.get_package_info_script, info->script_path, NULL }; char* envp[] = { NULL }; - execve(PKG_INFO_CMD, argv, envp); + execve(cfg.get_package_info_script, argv, envp); // what are you still doing here? - die("CHILD - execve to %s failed: %s", PKG_INFO_CMD, strerror(errno)); + die("CHILD - execve to %s failed: %s", cfg.get_package_info_script, strerror(errno)); } else { // parent proc, close write end of pipe close(pipefds[1]); |
