diff options
author | Baitinq <manuelpalenzuelamerino@gmail.com> | 2022-07-16 17:14:30 +0200 |
---|---|---|
committer | Baitinq <manuelpalenzuelamerino@gmail.com> | 2022-07-16 17:14:30 +0200 |
commit | 4fc8799d38226363522e5711a645bfaea2b304ff (patch) | |
tree | 63d56eab66512c63e42929b90655b4b04ecc6d4f /shell.nix | |
parent | Enable direnv and install hls (diff) | |
download | sky-info-4fc8799d38226363522e5711a645bfaea2b304ff.tar.gz sky-info-4fc8799d38226363522e5711a645bfaea2b304ff.tar.bz2 sky-info-4fc8799d38226363522e5711a645bfaea2b304ff.zip |
Diffstat (limited to 'shell.nix')
-rw-r--r-- | shell.nix | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/shell.nix b/shell.nix index 72fce48..1ab7f90 100644 --- a/shell.nix +++ b/shell.nix @@ -1,10 +1,32 @@ -{ pkgs ? import <nixpkgs> { } }: -pkgs.mkShell { - buildInputs = with pkgs; [ - ghc - cabal-install - stack - - haskell-language-server - ]; -} +{ nixpkgs ? import <nixpkgs> {}, compiler ? "default", doBenchmark ? false }: + +let + + inherit (nixpkgs) pkgs; + + f = { mkDerivation, astro, base, hpack, lib }: + mkDerivation { + pname = "sky-info"; + version = "0.1.0.0"; + src = ./.; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ astro base ]; + libraryToolDepends = [ hpack ]; + executableHaskellDepends = [ astro base ]; + testHaskellDepends = [ astro base ]; + prePatch = "hpack"; + homepage = "https://github.com/githubuser/sky-info#readme"; + license = lib.licenses.bsd3; + }; + + 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 + drv.env |