{ pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}, name ? "generic", version, extraBuildInputs ? [] }: let go = builtins.getAttr "go_${version}" pkgs; goBuildInputs = with pkgs; [ go gotools #gotools.bin gocode gocode.bin #godef godef.bin godep #godep.bin gox.bin #ginkgo ginkgo.bin #gomega ]; goShellHook = { go, name }: '' goname=${go.version}_$name setPS1 $goname export GOROOT=${go}/share/go export GOPATH="$HOME/.gopath_$goname" export PATH="$HOME/.gopath_$goname/bin:$PATH" unset name ''; in pkgs.stdenv.mkDerivation { inherit name; buildInputs = extraBuildInputs ++ goBuildInputs; shellHook = (goShellHook) { inherit name; inherit go; }; }