{ gitpkgs ? import /home/steveej/src/github/NixOS/nixpkgs {} , pkgs ? gitpkgs , name ? "generic" , version , extraBuildInputs ? [] , extraShellHook ? "" }: let go = builtins.getAttr "go_${version}" pkgs; buildInputs = with pkgs; [ glibc.out glibc.static go gotools #gotools.bin #gocode.bin #godef godef.bin godep #godep.bin gox.bin #ginkgo ginkgo.bin #gomega (import ./vim-go.nix{inherit pkgs;}) ]; in pkgs.stdenv.mkDerivation { inherit name; buildInputs = extraBuildInputs ++ buildInputs; shellHook = '' 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 unset SSL_CERT_FILE go get -u github.com/Masterminds/glide go get -u github.com/sgotti/glide-vc go get -u github.com/alecthomas/gometalinter go get -u github.com/golang/lint/golint go get -u github.com/rogpeppe/godef go get -u github.com/kisielk/errcheck go get -u github.com/jstemmer/gotags go get -u github.com/klauspost/asmfmt/cmd/asmfmt go get -u github.com/nsf/gocode ${extraShellHook} ''; }