#include "../include/Exec.hpp" namespace sibs { Result exec(const char *cmd, bool print) { char buffer[128]; std::string result; FILE *pipe = popen(cmd, "r"); if(!pipe) return Result::Err("popen() failed"); while(!feof(pipe)) { if(fgets(buffer, 128, pipe)) { result += buffer; if(print) printf("%s", buffer); } } ExecResult execResult; execResult.execStdout = result; execResult.exitCode = WEXITSTATUS(pclose(pipe)); return Result::Ok(execResult); } }