about summary refs log tree commit diff
path: root/third_party/nix/src/libstore/derivations.cc
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-08-03T23·09-0400
committerglittershark <grfn@gws.fyi>2020-08-03T23·17+0000
commit31b9578ad028cf5eff7fa426f134891cbba83ca9 (patch)
tree47a07afe7482a448df21f94b9973ed1809347f66 /third_party/nix/src/libstore/derivations.cc
parent661353f2006a46216fe1a7fa2ae5abd08d540f49 (diff)
fix(3p/nix): Fix parseDrvPathWithOutputs r/1571
At some point the behavior of this function got changed as part of our
cleanup - this fixes it to behave the way the rest of the codebase
expects (and how it is documented in the header) and covers it with a
few tests.

Change-Id: Id4c91232968e73489cd866fb4a2a84bcf20d875e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1629
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'third_party/nix/src/libstore/derivations.cc')
-rw-r--r--third_party/nix/src/libstore/derivations.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/third_party/nix/src/libstore/derivations.cc b/third_party/nix/src/libstore/derivations.cc
index 8a50f3c85b4d..978d39b94e7d 100644
--- a/third_party/nix/src/libstore/derivations.cc
+++ b/third_party/nix/src/libstore/derivations.cc
@@ -408,15 +408,15 @@ Hash hashDerivationModulo(Store& store, Derivation drv) {
   return hashString(htSHA256, drv.unparse());
 }
 
-// TODO(tazjin): doc comment?
 DrvPathWithOutputs parseDrvPathWithOutputs(absl::string_view path) {
   auto pos = path.find('!');
   if (pos == absl::string_view::npos) {
     return DrvPathWithOutputs(path, std::set<std::string>());
   }
 
-  return DrvPathWithOutputs(path.substr(pos + 1),
-                            absl::StrSplit(path, absl::ByChar(',')));
+  return DrvPathWithOutputs(
+      path.substr(0, pos),
+      absl::StrSplit(path.substr(pos + 1), absl::ByChar(',')));
 }
 
 Path makeDrvPathWithOutputs(const Path& drvPath,