aboutsummaryrefslogtreecommitdiff
path: root/mbpk.c
diff options
context:
space:
mode:
Diffstat (limited to 'mbpk.c')
-rw-r--r--mbpk.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/mbpk.c b/mbpk.c
new file mode 100644
index 0000000..30ec82d
--- /dev/null
+++ b/mbpk.c
@@ -0,0 +1,33 @@
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <xbps.h>
+#include <stdlib.h>
+#include <limits.h>
+
+int main(void) {
+ /* init xbps stuff */
+ struct xbps_handle x;
+
+ memset(&x, 0, sizeof(x));
+ const char* home = getenv("HOME");
+ if (home == NULL) {
+ struct passwd *pw = getpwuid(getuid());
+ if (pw != NULL) {
+ home = pw->pw_dir;
+ }
+ }
+ snprintf(x.rootdir, sizeof(x.rootdir), "%s/.local/mbpk/prefix", home);
+ snprintf(x.cachedir, sizeof(x.cachedir), "%s/.local/mbpk/cache", home);
+ snprintf(x.confdir, sizeof(x.confdir), "%s/.local/mbpk/conf.d", home);
+ x.flags = XBPS_FLAG_VERBOSE;
+
+ int r = xbps_init(&x);
+ if (r != 0) {
+ fprintf(stderr, "xbps_init failed: %s\n", strerror(r));
+ return r;
+ }
+
+ return 0;
+}