From 179d8980e55578e3553bad0b237368d74e074f15 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 18 Nov 2014 16:05:40 +0100 Subject: initial commit --- env.nix | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 env.nix (limited to 'env.nix') diff --git a/env.nix b/env.nix new file mode 100644 index 0000000..f0ea840 --- /dev/null +++ b/env.nix @@ -0,0 +1,55 @@ +{ nixpkgs ? import {} }: + +let + pname = "regfish"; + version = "1"; + + buildInputs = with pkgs; [ + hsEnv + ]; + + extraCmds = with pkgs; '' + export HISTFILE="\$HOME/.history/env-${pname}" + export MANPATH=\$MANPATH:${lftp}/share/man + $(grep export ${hsEnv.outPath}/bin/ghc) + ${mkExports staticPkgs} + if test -f "\$HOME/.env-${pname}"; then + . "\$HOME/.env-${pname}" + fi + ''; + + hsEnv = hsPkgs.ghcWithPackagesOld (self: with self; + [ + acidState + cabalInstall + tagsoup + wreq + ] + ); + + hsPkgs = pkgs.haskellPackages_ghc783_profiling.override { + extension = self: super: with self; { + }; + }; + + pkgs = nixpkgs // staticPkgs; + staticPkgs = with nixpkgs; { + }; + + #{{{ mkExports : set -> string + # Create shell script that exports a set's attributes. + mkExports = set: with builtins; with pkgs.lib.strings; + let + # XXX attribute names are not escaped, they have to be sane + # XXX the value should not contain + mkExport = k: "export ${k}=${escapeSh (getAttr k set)}"; + escapeSh = stringAsChars (c: "\\${c}"); + in + concatStringsSep "\n" (map mkExport (attrNames set)); + #}}} + +in pkgs.myEnvFun { + name = "${pname}-${version}"; + inherit buildInputs extraCmds; +} +# vim: set fdm=marker : -- cgit v1.2.3