33 lines
777 B
Nix
33 lines
777 B
Nix
{
|
|
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; };
|
|
}
|