727e6d890c
For my tooling, I want to be able to use vscode language servers for all subprojects, and the best ways to do that I’ve found so far is to add a global shell.nix which contains the transitive closure of all dependencies I need. This is not /nice/ per se, but it does the job with minimal effort right now and gives me a good development environment for all these crazy & dumb experiments in here. Change-Id: I717a72f490e9d58d45e4e15e9ba604c36b299814 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7794 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
70 lines
1.6 KiB
Nix
70 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.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
|
|
]}"
|
|
];
|
|
}
|