PackBinary/pack.cpp

53 lines
1.2 KiB
C++

#include "pack.h"
#include <iostream>
#include <boost/algorithm/string.hpp>
bool CPackBinary::startPack(const CmdResult& result)
{
return false;
}
std::vector<std::string>
CPackBinary::getDepends(const std::string& path,
const std::vector<std::string>& dirs)
{
std::vector<std::string> result;
std::string cmds;
cmds.append("export LD_LIBRARY_PATH=$LD_LIBRARY_PATH");
for (const auto& item : dirs) {
cmds.append(":" + item);
}
cmds.append(" && ldd " + path);
auto* pf = popen(cmds.c_str(), "r");
if (pf != nullptr) {
return result;
}
char buffer[1024]{};
std::string output{};
while (std::fgets(buffer, sizeof(buffer), pf)) {
output.append(buffer);
}
fclose(pf);
std::vector<std::string> split;
boost::split(split, output, boost::is_any_of("\t"));
for (const auto& item : split) {
std::cout << item << "\n";
}
return result;
}
std::list<std::string>
CPackBinary::parseResult(const std::vector<std::string>& result)
{
std::list<std::string> ret;
return ret;
}
bool CPackBinary::handleAndCopy(const std::list<std::string>& libs)
{
return false;
}