diff main.cpp @ 0:21b543c7aa14

Initial commit
author Yasuri <yasuri@charliesmp.net>
date Sun, 13 Sep 2026 19:19:56 +0000
parents
children 00b62a080354
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Sep 13 19:19:56 2026 +0000
@@ -0,0 +1,31 @@
+#include <iostream>
+#include <sstream>
+#include "process.h"
+std::string extract_pkgname(const std::string& fzf_line) {
+    std::istringstream iss(fzf_line);
+    std::string marker, pkgver;
+    iss >> marker >> pkgver;
+    return pkgver;
+}
+int main() {
+    char* const query_argv[] = { const_cast<char*>("xbps-query"), const_cast<char*>("-Rs"), const_cast<char*>(""), nullptr };
+    std::string package_list = run_piped("/usr/bin/xbps-query", query_argv, ""); 
+    char* const fzf_argv[] = { const_cast<char*>("fzf"), nullptr };
+    std::string result = run_piped("/usr/bin/fzf", fzf_argv, package_list);
+
+    // strip trailing newline fzf adds
+    if (!result.empty() && result.back() == '\n') {
+        result.pop_back();
+    }
+    std::string pkgname = extract_pkgname(result);
+    char* const install_argv[] = {
+        const_cast<char*>("doas"),
+        const_cast<char*>("xbps-install"),
+        const_cast<char*>("-Sy"),
+        pkgname.data(),
+        nullptr
+    };
+    std::string status = spawn(install_argv, "/usr/bin/doas");
+
+    return 0;
+}