dev/{go,rkt}: add extraShellHook with rkt functionality

This commit is contained in:
steveej 2016-08-31 15:59:53 +02:00
parent 2a7c73e748
commit dcf4cdd88b
2 changed files with 51 additions and 11 deletions

View file

@ -2,7 +2,9 @@
pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}, pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {},
name ? "generic", name ? "generic",
version, version,
extraBuildInputs ? [] }: extraBuildInputs ? [],
extraShellHook ? ""
}:
let let
go = builtins.getAttr "go_${version}" pkgs; go = builtins.getAttr "go_${version}" pkgs;
buildInputs = with pkgs; [ buildInputs = with pkgs; [
@ -21,16 +23,27 @@ let
#ginkgo ginkgo.bin #ginkgo ginkgo.bin
#gomega #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 { in pkgs.stdenv.mkDerivation {
inherit name; inherit name;
shellHook = (goShellHook) { inherit name; inherit go; };
buildInputs = extraBuildInputs ++ buildInputs; 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
${extraShellHook}
'';
} }

View file

@ -1,6 +1,7 @@
{ {
pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}, pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {},
mkGoEnv ? import ./go.nix, mkGoEnv ? import ./go.nix,
rktPath,
}: }:
let let
rktBasebuildInputs = with pkgs; [ rktBasebuildInputs = with pkgs; [
@ -26,6 +27,21 @@ let
trousers trousers
systemd systemd
]; ];
extraShellHook = ''
TARGET=$GOPATH/src/github.com/coreos/rkt
if [[ -e ${rktPath}/rkt/rkt.go ]]; then
pushd ${rktPath}
else
echo rktPath must be run the rkt repository clone, but got '${rktPath}'
exit 1
fi
if ! [[ -e $TARGET/rkt/rkt.go ]]; then
mkdir -p $TARGET
echo $PWD
sudo -E mount -o bind $PWD $TARGET
fi
pushd $TARGET
'';
in { in {
go15 = mkGoEnv { go15 = mkGoEnv {
inherit pkgs; inherit pkgs;
@ -33,6 +49,7 @@ in {
name = "rktGo15"; name = "rktGo15";
version = "1_5"; version = "1_5";
extraBuildInputs = rktBasebuildInputs; extraBuildInputs = rktBasebuildInputs;
inherit extraShellHook;
}; };
go16 = mkGoEnv { go16 = mkGoEnv {
@ -41,5 +58,15 @@ in {
name = "rktGo16"; name = "rktGo16";
version = "1_6"; version = "1_6";
extraBuildInputs = rktBasebuildInputs; extraBuildInputs = rktBasebuildInputs;
inherit extraShellHook;
};
go17 = mkGoEnv {
inherit pkgs;
name = "rktGo17";
version = "1_7";
extraBuildInputs = rktBasebuildInputs;
inherit extraShellHook;
}; };
} }