Hi, On 10/25/2011 01:35 AM, Shea Levy wrote:
> So I'd really like to see one of two solutions implemented (I'll do the > implementation myself if Eelco is willing to consider accepting these > solutions) > in nix (possibly with an explicit command-line flag or nix.config setting to > enable them, like we have with enableParallelBuilds): You can do what you want today, since the "import" function (as opposed to builtins.readFile) supports importing the output of a derivation. I.e. you can do let drv = runCommand ... "some command that generates $out/foo.nix" ... in import "${drv}/foo.nix" However, you don't want this most of the time, certainly not in Nixpkgs, because it causes query operations like "nix-env -qa" to do a build. Which is a bad thing. Actually, since "nix-env -qa" runs in read-only mode, it won't even work (but it will work for "nix-env -i", "nix-instantiate" or "nix-build"). There are a few examples of this: - https://nixos.org/repos/nix/nixpkgs/trunk/pkgs/build-support/vm/default.nix; here we import the output of the functions rpmClosureGenerator and debClosureGenerator (a derivation that builds a Nix expression containing fetchurl calls to download the required RPMs or Debs). - https://nixos.org/repos/nix/nixpkgs/trunk/pkgs/misc/tex/nix/default.nix; the function to build a LaTeX document does "deps = import (pkgs.runCommand "latex-includes" ..." to figure out the dependencies of the document (e.g., \input{...}) on the fly. - https://nixos.org/repos/nix/attic/make/lib/default.nix does a similar thing to figure out the header file dependencies of a C file. -- Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/ _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev