diff options
author | Griffin Smith <grfn@gws.fyi> | 2020-08-14T02·06-0400 |
---|---|---|
committer | glittershark <grfn@gws.fyi> | 2020-08-14T03·06+0000 |
commit | d1c38d9597e110bef92a548c86a651174bd385dc (patch) | |
tree | 98d64ac81a4f7ca91ad21f732c84bdc3f73df9cb /third_party/nix/src/libstore/store-api.cc | |
parent | aef3607bd332a9a6adbb150abe63250745972532 (diff) |
refactor(tvix): Make Store::buildPaths return a Status r/1649
Make Store::buildPaths return a Status with [[nodiscard]] rather than throwing exceptions to signal failure. This is the beginning of a long road to refactor the entire store API to be status/statusor based instead of using exceptions. Change-Id: I2e32371c95a25b87ad129987c217d49c6d6e0c85 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1745 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com>
Diffstat (limited to 'third_party/nix/src/libstore/store-api.cc')
-rw-r--r-- | third_party/nix/src/libstore/store-api.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/third_party/nix/src/libstore/store-api.cc b/third_party/nix/src/libstore/store-api.cc index ae403b0be65f..fc33c7ce5711 100644 --- a/third_party/nix/src/libstore/store-api.cc +++ b/third_party/nix/src/libstore/store-api.cc @@ -3,6 +3,7 @@ #include <future> #include <utility> +#include <absl/status/status.h> #include <absl/strings/match.h> #include <absl/strings/numbers.h> #include <absl/strings/str_cat.h> @@ -700,16 +701,20 @@ const Store::Stats& Store::getStats() { return stats; } -void Store::buildPaths(const PathSet& paths, BuildMode buildMode) { +absl::Status Store::buildPaths(const PathSet& paths, BuildMode) { for (auto& path : paths) { if (isDerivation(path)) { - unsupported("buildPaths"); + return absl::Status(absl::StatusCode::kUnimplemented, + "buildPaths is unsupported"); } } if (queryValidPaths(paths).size() != paths.size()) { - unsupported("buildPaths"); + return absl::Status(absl::StatusCode::kUnimplemented, + "buildPaths is unsupported"); } + + return absl::OkStatus(); } void copyStorePath(ref<Store> srcStore, const ref<Store>& dstStore, |