diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..f41980d --- /dev/null +++ b/shell.nix @@ -0,0 +1,33 @@ +{ nixpkgs ? import {}, compiler ? "default", doBenchmark ? false }: + +let + + inherit (nixpkgs) pkgs; + + f = { mkDerivation, aeson, base, filepath, hakyll, HTTP, stdenv + , time + }: + mkDerivation { + pname = "chaoszone"; + version = "0.0.0.0"; + src = ./.; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + aeson base filepath hakyll HTTP time + ]; + homepage = "https://chaoszone.cz"; + license = stdenv.lib.licenses.publicDomain; + }; + + haskellPackages = if compiler == "default" + then pkgs.haskellPackages + else pkgs.haskell.packages.${compiler}; + + variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id; + + drv = variant (haskellPackages.callPackage f {}); + +in + + if pkgs.lib.inNixShell then drv.env else drv