summaryrefslogtreecommitdiff
path: root/src/buildtool/main/serve.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/main/serve.cpp')
-rw-r--r--src/buildtool/main/serve.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/buildtool/main/serve.cpp b/src/buildtool/main/serve.cpp
index 1c079032..32da7801 100644
--- a/src/buildtool/main/serve.cpp
+++ b/src/buildtool/main/serve.cpp
@@ -399,6 +399,27 @@ void ReadJustServeConfig(gsl::not_null<CommandLineArguments*> const& clargs) {
clargs->build.timeout =
std::size_t(timeout->Number()) * std::chrono::seconds{1};
}
+ auto strategy = build_args->Get("target-cache write strategy",
+ Expression::none_t{});
+ if (strategy.IsNotNull()) {
+ if (not strategy->IsString()) {
+ Logger::Log(
+ LogLevel::Error,
+ "just serve: configuration-file provided target-cache "
+ "write strategy has to be a string, but found {}",
+ strategy->ToString());
+ std::exit(kExitFailure);
+ }
+ auto s_value = ToTargetCacheWriteStrategy(strategy->String());
+ if (not s_value) {
+ Logger::Log(LogLevel::Error,
+ "just serve: configuration-file provided unknown "
+ "target-cache write strategy {}",
+ strategy->ToString());
+ std::exit(kExitFailure);
+ }
+ clargs->tc.target_cache_write_strategy = *s_value;
+ }
}
}