diff options
-rw-r--r-- | doc/tutorial/invocation-logging.md | 3 | ||||
-rw-r--r-- | share/man/just-mrrc.5.md | 3 | ||||
-rw-r--r-- | src/other_tools/just_mr/cli.hpp | 1 | ||||
-rw-r--r-- | src/other_tools/just_mr/launch.cpp | 14 | ||||
-rw-r--r-- | src/other_tools/just_mr/rc.cpp | 6 |
5 files changed, 27 insertions, 0 deletions
diff --git a/doc/tutorial/invocation-logging.md b/doc/tutorial/invocation-logging.md index a1f94a1c..292504f2 100644 --- a/doc/tutorial/invocation-logging.md +++ b/doc/tutorial/invocation-logging.md @@ -48,6 +48,8 @@ be specified. directory to be used when generating the `--profile` option in the command line for the `just` invocation. - `"--dump-graph"` does the same for the `--dump-graph` option. + - `"--dump-artifacts-to-build"` does the same for the + `--dump-artifacts-to-build` option. - `"--dump-artifacts"` does the same for the `--dump-artifacts` option; while not directly useful for profiling, browsing the final artifacts (including the test logs) can be useful to @@ -67,6 +69,7 @@ would look as follows. , "metadata": "meta.json" , "--profile": "profile.json" , "--dump-graph": "graph.json" + , "--dump-artifacts-to-build": "to-build.json" , "--dump-artifacts": "artifacts.json" } } diff --git a/share/man/just-mrrc.5.md b/share/man/just-mrrc.5.md index 662717b7..96f11912 100644 --- a/share/man/just-mrrc.5.md +++ b/share/man/just-mrrc.5.md @@ -195,6 +195,9 @@ The just-mrrc is given by a JSON object. - *`"--dump-plain-graph"`* A file name specifying the file in the invocation-log directory for an invocation-specific `--dump-plain-graph` option. + - *`"--dump-artifacts-to-build"`* A file name specifying the + file in the invocation-log directory for the invocation-specific + `--dump-artifacts-to-build` option. - *`"--dump-artifacts"`* A file name specifying in the file in the invocation-log directory for the invocation-specific `--dump-artifacts` option. diff --git a/src/other_tools/just_mr/cli.hpp b/src/other_tools/just_mr/cli.hpp index df952957..defb7be6 100644 --- a/src/other_tools/just_mr/cli.hpp +++ b/src/other_tools/just_mr/cli.hpp @@ -98,6 +98,7 @@ struct InvocationLogArguments { std::optional<std::string> metadata{std::nullopt}; std::optional<std::string> graph_file{std::nullopt}; std::optional<std::string> graph_file_plain{std::nullopt}; + std::optional<std::string> dump_artifacts_to_build{std::nullopt}; std::optional<std::string> dump_artifacts{std::nullopt}; std::optional<std::string> profile{std::nullopt}; }; diff --git a/src/other_tools/just_mr/launch.cpp b/src/other_tools/just_mr/launch.cpp index 7d2bdf25..0a061031 100644 --- a/src/other_tools/just_mr/launch.cpp +++ b/src/other_tools/just_mr/launch.cpp @@ -326,6 +326,20 @@ auto CallJust(std::optional<std::filesystem::path> const& config_file, cmd.emplace_back("--dump-plain-graph"); cmd.emplace_back(*log_dir / *invocation_log.graph_file_plain); } + if (invocation_log.dump_artifacts_to_build) { + if (not IsValidFileName(*invocation_log.dump_artifacts_to_build)) { + Logger::Log( + LogLevel::Error, + "Invalid file name for option --dump-artifacts_to_build: " + "{}", + nlohmann::json(*invocation_log.dump_artifacts_to_build) + .dump()); + std::exit(kExitClargsError); + } + cmd.emplace_back("--dump-artifacts-to-build"); + cmd.emplace_back(*log_dir / + *invocation_log.dump_artifacts_to_build); + } if (does_build and invocation_log.dump_artifacts) { if (not IsValidFileName(*invocation_log.dump_artifacts)) { Logger::Log( diff --git a/src/other_tools/just_mr/rc.cpp b/src/other_tools/just_mr/rc.cpp index 7d7f6f5a..41b7e77e 100644 --- a/src/other_tools/just_mr/rc.cpp +++ b/src/other_tools/just_mr/rc.cpp @@ -619,6 +619,12 @@ namespace { if (graph_file_plain->IsString()) { clargs->invocation_log.graph_file = graph_file_plain->String(); } + auto dump_artifacts_to_build = invocation_log->Get( + "--dump-artifacts-to-build", Expression::none_t{}); + if (dump_artifacts_to_build->IsString()) { + clargs->invocation_log.dump_artifacts_to_build = + dump_artifacts_to_build->String(); + } auto dump_artifacts = invocation_log->Get("--dump-artifacts", Expression::none_t{}); if (dump_artifacts->IsString()) { |