Mercurial > xbps-search-tv
view main.cpp @ 1:a17d9d25e9ea
add readme and license
| author | Yasuri <yasuri@charliesmp.net> |
|---|---|
| date | Sun, 13 Sep 2026 19:25:50 +0000 |
| parents | 21b543c7aa14 |
| children | 00b62a080354 |
line wrap: on
line source
#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; }
