lix/src/nix/log.cc

49 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "command.hh"
#include "common-args.hh"
#include "installables.hh"
#include "shared.hh"
#include "store-api.hh"
using namespace nix;
struct CmdLog : MixInstallables
{
CmdLog()
{
}
std::string name() override
{
return "log";
}
std::string description() override
{
return "show the build log of the specified packages or paths";
}
void run(ref<Store> store) override
{
auto subs = getDefaultSubstituters();
subs.push_front(store);
for (auto & inst : installables) {
for (auto & path : inst->toBuildable()) {
bool found = false;
for (auto & sub : subs) {
auto log = sub->getBuildLog(path);
if (!log) continue;
std::cout << *log;
found = true;
break;
}
if (!found)
throw Error("build log of path %s is not available", path);
}
}
}
};
static RegisterCommand r1(make_ref<CmdLog>());