diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..df06270 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +build: + +install: + mkdir -p $(PREFIX)/bin $(PREFIX)/share + cp direnv-cache $(PREFIX)/bin + cp direnvrc $(PREFIX)/share + +check: + term-test -s tests diff --git a/default.nix b/default.nix index 639d8c8..84462b4 100644 --- a/default.nix +++ b/default.nix @@ -1,3 +1,13 @@ -{ pkgs ? import {} }: -(pkgs.writers.writeBashBin "direnv-cache" ./direnv-cache).overrideAttrs - (o: { passthru = { direnvrc = ./direnvrc; }; }) +{ stdenv, direnv, term-test }: + +stdenv.mkDerivation { + name = "direnv-cache"; + src = ./.; + propagatedBuildInputs = [ direnv ]; + installPhase = '' + make install PREFIX=$out + ''; + checkInputs = [ term-test ]; + doCheck = true; + passthru = { direnvrc = ./direnvrc; }; +} diff --git a/direnvrc b/direnvrc index 11972dd..a80231a 100644 --- a/direnvrc +++ b/direnvrc @@ -14,4 +14,3 @@ cache() { echo "Environment not cached" fi } - diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..d0cf41d --- /dev/null +++ b/shell.nix @@ -0,0 +1,2 @@ +{ pkgs ? import {} }: +pkgs.callPackage ./. {} diff --git a/tests/test_direnv_stable_behavior b/tests/test_direnv_stable_behavior new file mode 100644 index 0000000..e5c76d5 --- /dev/null +++ b/tests/test_direnv_stable_behavior @@ -0,0 +1,33 @@ +# -*- mode: sh -*- + +function initDirenv { + # direnv needs a writable home: + run "export HOME=$(pwd)" + run 'eval "$(direnv hook bash)"' +} + +function test_simpleEnvrcWorks { + initDirenv + + writeFile .envrc <