aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/build/hook-instance.cc
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-05-19 10:56:59 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-06-18 23:31:18 -0400
commitd2ce2e89b178e7e7467cf4c1e572704a4c2ca75e (patch)
tree02aa329cd6ae719276abdfe953500783b91e1e23 /src/libstore/build/hook-instance.cc
parentc8825e9d8c3fa802811f3829d055e3ef9aae90e2 (diff)
Split `OptionalPathSetting` from `PathSetting`
Rather than doing `allowEmpty` as boolean, have separate types and use `std::optional`. This makes it harder to forget the possibility of an empty path. The `build-hook` setting was categorized as a `PathSetting`, but actually it was split into arguments. No good! Now, it is `Setting<Strings>` which actually reflects what it means and how it is used. Because of the subtyping, we now also have support for `Setting<std::optional<String>>` in general. I imagine this can be used to clean up many more settings also.
Diffstat (limited to 'src/libstore/build/hook-instance.cc')
-rw-r--r--src/libstore/build/hook-instance.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libstore/build/hook-instance.cc b/src/libstore/build/hook-instance.cc
index 075ad554f..337c60bd4 100644
--- a/src/libstore/build/hook-instance.cc
+++ b/src/libstore/build/hook-instance.cc
@@ -5,14 +5,14 @@ namespace nix {
HookInstance::HookInstance()
{
- debug("starting build hook '%s'", settings.buildHook);
+ debug("starting build hook '%s'", concatStringsSep(" ", settings.buildHook.get()));
- auto buildHookArgs = tokenizeString<std::list<std::string>>(settings.buildHook.get());
+ auto buildHookArgs = settings.buildHook.get();
if (buildHookArgs.empty())
throw Error("'build-hook' setting is empty");
- auto buildHook = buildHookArgs.front();
+ auto buildHook = canonPath(buildHookArgs.front());
buildHookArgs.pop_front();
Strings args;