aboutsummaryrefslogtreecommitdiff
path: root/src/libcmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcmd')
-rw-r--r--src/libcmd/built-path.cc22
-rw-r--r--src/libcmd/built-path.hh4
2 files changed, 26 insertions, 0 deletions
diff --git a/src/libcmd/built-path.cc b/src/libcmd/built-path.cc
index c6cc7fa9c..9a2dce806 100644
--- a/src/libcmd/built-path.cc
+++ b/src/libcmd/built-path.cc
@@ -58,6 +58,28 @@ StorePathSet BuiltPath::outPaths() const
);
}
+SingleDerivedPath::Built SingleBuiltPath::Built::discardOutputPath() const
+{
+ return SingleDerivedPath::Built {
+ .drvPath = make_ref<SingleDerivedPath>(drvPath->discardOutputPath()),
+ .output = output.first,
+ };
+}
+
+SingleDerivedPath SingleBuiltPath::discardOutputPath() const
+{
+ return std::visit(
+ overloaded{
+ [](const SingleBuiltPath::Opaque & p) -> SingleDerivedPath {
+ return p;
+ },
+ [](const SingleBuiltPath::Built & b) -> SingleDerivedPath {
+ return b.discardOutputPath();
+ },
+ }, raw()
+ );
+}
+
nlohmann::json BuiltPath::Built::toJSON(const Store & store) const
{
nlohmann::json res;
diff --git a/src/libcmd/built-path.hh b/src/libcmd/built-path.hh
index 747bcc440..e677bc810 100644
--- a/src/libcmd/built-path.hh
+++ b/src/libcmd/built-path.hh
@@ -9,6 +9,8 @@ struct SingleBuiltPathBuilt {
ref<SingleBuiltPath> drvPath;
std::pair<std::string, StorePath> output;
+ SingleDerivedPathBuilt discardOutputPath() const;
+
std::string to_string(const Store & store) const;
static SingleBuiltPathBuilt parse(const Store & store, std::string_view, std::string_view);
nlohmann::json toJSON(const Store & store) const;
@@ -34,6 +36,8 @@ struct SingleBuiltPath : _SingleBuiltPathRaw {
StorePath outPath() const;
+ SingleDerivedPath discardOutputPath() const;
+
static SingleBuiltPath parse(const Store & store, std::string_view);
nlohmann::json toJSON(const Store & store) const;
};