aboutsummaryrefslogtreecommitdiff
path: root/snag/src/package_db.c
diff options
context:
space:
mode:
Diffstat (limited to 'snag/src/package_db.c')
-rw-r--r--snag/src/package_db.c22
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]);