{ 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 :