Pass system to bundler

This commit is contained in:
Matthew Bauer
2020-07-30 15:37:05 -05:00
parent 22fcfdf18a
commit fa2d1fb36e
2 changed files with 14 additions and 17 deletions
+7 -3
View File
@@ -75,17 +75,21 @@ struct CmdBundle : InstallableCommand
const flake::LockFlags lockFlags{ .writeLockFile = false };
auto bundler = InstallableFlake(
evalState, std::move(bundlerFlakeRef),
Strings{bundlerName == "" ? ("defaultBundler." + settings.thisSystem.get()) : bundlerName},
Strings({"bundlers." + settings.thisSystem.get() + "."}), lockFlags);
Strings{bundlerName == "" ? "defaultBundler" : bundlerName},
Strings({"bundlers."}), lockFlags);
Value * arg = evalState->allocValue();
evalState->mkAttrs(*arg, 1);
evalState->mkAttrs(*arg, 2);
PathSet context;
for (auto & i : app.context)
context.insert("=" + store->printStorePath(i.path));
mkString(*evalState->allocAttr(*arg, evalState->symbols.create("program")), app.program, context);
mkString(*evalState->allocAttr(*arg, evalState->symbols.create("system")), settings.thisSystem.get());
arg->attrs->sort();
auto vRes = evalState->allocValue();
evalState->callFunction(*bundler.toValue(*evalState).first, *arg, *vRes, noPos);