nixpkgs/pkgs/build-support/my-env-run/default.nix
Rickard Nilsson 8685278f11 Add nix-run and myEnvRun
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.
2013-12-01 09:36:55 +01:00

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}
''