Skip to content

Commit cfcc231

Browse files
committed
style(cli): simplify build watch output
2 parents e144c0a + d8cf205 commit cfcc231

3 files changed

Lines changed: 997 additions & 62 deletions

File tree

‎src/build/BuildGraphExecutorAdapter.cpp‎

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
#include <algorithm>
2020
#include <cctype>
2121
#include <cstdlib>
22+
#include <fstream>
2223
#include <iostream>
24+
#include <iterator>
2325
#include <string>
2426

2527
#include <vix/cli/cmake/CMakeBuild.hpp>
@@ -42,6 +44,17 @@ namespace vix::cli::build
4244

4345
return value == "debug" || value == "trace";
4446
}
47+
48+
static std::string read_text_file_or_empty(const fs::path &path)
49+
{
50+
std::ifstream in(path, std::ios::binary);
51+
if (!in)
52+
return {};
53+
54+
return std::string(
55+
std::istreambuf_iterator<char>(in),
56+
std::istreambuf_iterator<char>());
57+
}
4558
} // namespace
4659

4760
BuildGraphExecutorNinjaResult execute_graph_ninja_target(
@@ -64,8 +77,15 @@ namespace vix::cli::build
6477
result.producedOutput = execResult.producedOutput;
6578
result.displayCommand = execResult.displayCommand;
6679

67-
if (execResult.producedOutput && !execResult.capturedFirstLine.empty())
80+
if (execResult.exitCode != 0 && quiet)
81+
{
82+
result.output =
83+
read_text_file_or_empty(request.buildDir / "build.log");
84+
}
85+
else if (execResult.producedOutput && !execResult.capturedFirstLine.empty())
86+
{
6887
result.output = execResult.capturedFirstLine + "\n";
88+
}
6989

7090
return result;
7191
}

0 commit comments

Comments
 (0)