Hi Thomas,

 > I changed my sandbox code to look like the following. Is that how it's
 > intended to be used?

yes, exactly. That's a very nice example. You can put that definition into a
file, say shell.nix, and run

  $ nix-shell --pure shell.nix

to obtain an interactive environment that contains the compiler defined above.

If you want to go all out, you can also add a "shellHook" attribute to make
nix-shell define the magic environment variables that tell the 'ghc-paths'
package how to use your environment. For example:

 | { pkgs ? (import <nixpkgs> {}).pkgs }:
 |
 | let
 |
 |   env = pkgs.haskellngPackages.ghcWithPackages (p: with p; [
 |     text mtl transformers warp cabal-install
 |   ]);
 |
 | in
 |
 | pkgs.stdenv.mkDerivation {
 |   name = "hello-world-wide-web";
 |   buildInputs = [ env ];
 |   shellHook = ''
 |     export NIX_GHC="${env}/bin/ghc"
 |     export NIX_GHCPKG="${env}/bin/ghc-pkg"
 |     export NIX_GHC_DOCDIR="${env}/share/doc/ghc/html"
 |     export NIX_GHC_LIBDIR=$( $NIX_GHC --print-libdir )
 |   '';
 | }

Best regards,
Peter

_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to