/* EQEmu: EQEmulator Copyright (C) 2001-2026 EQEmu Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "process.h" #include "fmt/format.h" #include #include std::string Process::execute(const std::string &cmd) { std::string command = fmt::format("{} 2>&1", cmd); std::shared_ptr pipe(popen(command.c_str(), "r"), pclose); if (!pipe) { return "ERROR"; } char buffer[128]; std::string result; while (!feof(pipe.get())) { if (fgets(buffer, 128, pipe.get()) != nullptr) { result += buffer; } } return result; }