tvl-depot/users/Profpatsch/shell.nix
Profpatsch cd40585ea4 feat(users/Profpatsch/netencode): Add initial Haskell parser
A simple categorical parser that does not implement Monad, and does
not contain an `m` and some rudementary error message handling.

In the future I’d probably want to wrap everything in an additional
`m`, so that subparsers can somehow use `Selective` to throw errors
from within `m` that contain the parsing context if at all possible.
Hard to do without Monad, I have to say. Not even stuff like `StateT`
works without the inner `m` implementing `Monad`.

Change-Id: I1366eda606ddfb019637b09c82d8b0e30bd4e318
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7797
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-01-08 23:10:28 +00:00

71 lines
1.6 KiB
Nix

# generic shell.nix that can be used for most of my projects here,
# until I figure out a way to have composable shells.
let root = (import ../../. { }); in
{ pkgs ? root.third_party.nixpkgs, depot ? root, ... }:
pkgs.mkShell {
buildInputs = [
pkgs.sqlite-interactive
pkgs.sqlite-utils
pkgs.haskell-language-server
pkgs.cabal-install
(pkgs.haskellPackages.ghcWithHoogle (h: [
h.async
h.aeson-better-errors
h.conduit-extra
h.error
h.PyF
h.unliftio
h.wai
h.warp
h.profunctors
h.semigroupoids
h.validation-selective
h.free
h.cryptonite-conduit
h.sqlite-simple
h.hedgehog
h.http-conduit
h.nonempty-containers
h.deriving-compat
h.unix
h.attoparsec
h.iCalendar
h.case-insensitive
h.hscolour
h.nicify-lib
h.hspec-expectations-pretty-diff
depot.users.Profpatsch.my-prelude
depot.users.Profpatsch.netencode.netencode-hs
depot.users.Profpatsch.arglib.netencode.haskell
depot.users.Profpatsch.execline.exec-helpers-hs
]))
pkgs.rustup
pkgs.pkg-config
pkgs.fuse
];
RUSTC_WRAPPER =
let
wrapperArgFile = libs: pkgs.writeText "rustc-wrapper-args"
(pkgs.lib.concatStringsSep
"\n"
(pkgs.lib.concatLists
(map
(lib: [
"-L"
"${pkgs.lib.getLib lib}/lib"
])
libs)));
in
depot.nix.writeExecline "rustc-wrapper" { readNArgs = 1; } [
"$1"
"$@"
"@${wrapperArgFile [
depot.third_party.rust-crates.nom
]}"
];
}