comparison main.cpp @ 0:21b543c7aa14

Initial commit
author Yasuri <yasuri@charliesmp.net>
date Sun, 13 Sep 2026 19:19:56 +0000
parents
children 00b62a080354
comparison
equal deleted inserted replaced
-1:000000000000 0:21b543c7aa14
1 #include <iostream>
2 #include <sstream>
3 #include "process.h"
4 std::string extract_pkgname(const std::string& fzf_line) {
5 std::istringstream iss(fzf_line);
6 std::string marker, pkgver;
7 iss >> marker >> pkgver;
8 return pkgver;
9 }
10 int main() {
11 char* const query_argv[] = { const_cast<char*>("xbps-query"), const_cast<char*>("-Rs"), const_cast<char*>(""), nullptr };
12 std::string package_list = run_piped("/usr/bin/xbps-query", query_argv, "");
13 char* const fzf_argv[] = { const_cast<char*>("fzf"), nullptr };
14 std::string result = run_piped("/usr/bin/fzf", fzf_argv, package_list);
15
16 // strip trailing newline fzf adds
17 if (!result.empty() && result.back() == '\n') {
18 result.pop_back();
19 }
20 std::string pkgname = extract_pkgname(result);
21 char* const install_argv[] = {
22 const_cast<char*>("doas"),
23 const_cast<char*>("xbps-install"),
24 const_cast<char*>("-Sy"),
25 pkgname.data(),
26 nullptr
27 };
28 std::string status = spawn(install_argv, "/usr/bin/doas");
29
30 return 0;
31 }