Mercurial > xbps-search-tv
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 } |
