.files/nix/devShells/flora.nix

50 lines
1.2 KiB
Nix

#
# This is the non flake shell that just gets the basics of flora so I can have hls support outside of docker
#
let
sources = import ../sources.nix;
in
{pkgs ? import sources.pin-florashell {}}:
pkgs.mkShell (let
libs = with pkgs; [
zlib
libpq
libsodium
];
hlib = pkgs.haskell.lib;
callHackage = {name, version}:
let pkg = pkgs.haskell.packages.ghc910.callHackage name version {};
in hlib.dontCheck (hlib.doJailbreak pkg);
in {
name = "flora";
packages = with pkgs;
let
haskellPackages = haskell.packages.ghc910;
in
# These don't build directly and need to be pinned
map callHackage [
{name = "fourmolu"; version = "0.17.0.0";}
{name = "postgresql-migration"; version = "0.2.1.8";}
]
++ [
haskellPackages.ghcid
haskellPackages.cabal-fmt
haskellPackages.cabal-install
haskellPackages.ghc
haskellPackages.haskell-language-server
postgresql_14
postgresqlTestHook
yarn
pkg-config
esbuild
changelog-d
]
++ libs;
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath libs;
})