8685278f11
This adds nix-run, which is a thin wrapper around nix-build. nix-run calls nix-build, and then executes the resulting build. If no executable artifact is built, nix-runs outputs an error message. myEnvRun calls myEnvFun and builds a script that directly runs the load-env-* script. Together, nix-run and myEnvRun allows you to set up an environment that can be loaded in this way: envs.nix: { gcc = myEnvRun { name = "gcc"; buildInputs = [ gcc ]; }; } $ nix-run -A gcc envs.nix You end up directly in your environment without having to do nix-env -i. You will always have a fresh environment and you don't have to pollute you profile with a lot of env packages.
7 lines
164 B
Nix
7 lines
164 B
Nix
{ writeScript, bash, myEnvFun }: args:
|
|
|
|
let env = myEnvFun args; in writeScript "envrun-${args.name}" ''
|
|
#!${bash}/bin/bash
|
|
${env}/bin/load-env-${args.name}
|
|
''
|