diff options
author | Vincent Ambo <mail@tazj.in> | 2020-08-20T00·25+0100 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2020-08-20T11·48+0000 |
commit | 883de9b8d71b9cb984d8ff315b4dcc30e0ca9082 (patch) | |
tree | 2a8175cd758f2d8c08157a3790b08f8886e36726 /third_party | |
parent | dfc351b4634aff4c56a08ab4f47139ccaf6dc652 (diff) |
feat(tvix): Add a no-op stream buffer for discarding build logs r/1684
In some cases we don't have anywhere for the build logs to go. Until we understand those cases fully and can get rid of them, this null sink implementation can be used. Change-Id: Ib93c43caf268e2c01c43d59737a829e8c43d223e Reviewed-on: https://cl.tvl.fyi/c/depot/+/1792 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/nix/src/libstore/store-api.cc | 13 | ||||
-rw-r--r-- | third_party/nix/src/libstore/store-api.hh | 6 |
2 files changed, 19 insertions, 0 deletions
diff --git a/third_party/nix/src/libstore/store-api.cc b/third_party/nix/src/libstore/store-api.cc index fc33c7ce5711..3ada63532ca2 100644 --- a/third_party/nix/src/libstore/store-api.cc +++ b/third_party/nix/src/libstore/store-api.cc @@ -1,6 +1,8 @@ #include "libstore/store-api.hh" #include <future> +#include <ostream> +#include <streambuf> #include <utility> #include <absl/status/status.h> @@ -23,6 +25,17 @@ namespace nix { +namespace { +class NullStream : public std::streambuf { + public: + int overflow(int c) override { return c; } +}; + +static NullStream NULL_STREAM{}; +} // namespace + +std::ostream DiscardLogsSink() { return std::ostream(&NULL_STREAM); } + std::optional<BuildMode> BuildModeFrom(nix::proto::BuildMode mode) { switch (mode) { case nix::proto::BuildMode::Normal: diff --git a/third_party/nix/src/libstore/store-api.hh b/third_party/nix/src/libstore/store-api.hh index b1c0b50de376..39769dfb3cd0 100644 --- a/third_party/nix/src/libstore/store-api.hh +++ b/third_party/nix/src/libstore/store-api.hh @@ -19,6 +19,12 @@ namespace nix { +// Create a no-op stream buffer used to discard build output in cases +// where we don't have a build log sink to thread through. +// +// TODO(tazjin): Get rid of this and do *something* with those logs. +std::ostream DiscardLogsSink(); + MakeError(SubstError, Error); MakeError(BuildError, Error); /* denotes a permanent build failure */ MakeError(InvalidPath, Error); |