summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/remote/config.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/serve_api/remote/config.hpp')
-rw-r--r--src/buildtool/serve_api/remote/config.hpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/buildtool/serve_api/remote/config.hpp b/src/buildtool/serve_api/remote/config.hpp
index d19e7699..005d56af 100644
--- a/src/buildtool/serve_api/remote/config.hpp
+++ b/src/buildtool/serve_api/remote/config.hpp
@@ -17,6 +17,7 @@
#include <chrono>
#include <cstddef>
+#include <exception>
#include <filesystem>
#include <iterator>
#include <optional>
@@ -93,7 +94,7 @@ class RemoteServeConfig::Builder final {
/// \brief Finalize building and create RemoteServeConfig.
/// \return RemoteServeConfig on success or an error on failure.
- [[nodiscard]] auto Build() noexcept
+ [[nodiscard]] auto Build() const noexcept
-> expected<RemoteServeConfig, std::string> {
// To not duplicate default arguments of RemoteServeConfig in builder,
// create a default config and copy default arguments from there.
@@ -111,7 +112,12 @@ class RemoteServeConfig::Builder final {
auto known_repositories = default_config.known_repositories;
if (known_repositories_.has_value()) {
- known_repositories = std::move(*known_repositories_);
+ try {
+ known_repositories = *known_repositories_;
+ } catch (std::exception const& ex) {
+ return unexpected{
+ std::string("Setting known repositories failed.")};
+ }
}
auto jobs = default_config.jobs;