diff options
author | Profpatsch <mail@profpatsch.de> | 2023-01-07T13·58+0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2023-01-07T15·21+0000 |
commit | 727e6d890cad830c10c420f500583ebbed385d8a (patch) | |
tree | a6a16a4f05958a5998aa77c2e82e63051230c760 /users/Profpatsch/shell.nix | |
parent | a149a1ee067047719e38240ca7ef70068a217686 (diff) |
feat(users/Profpatsch): global shell for my userdir r/5627
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>
Diffstat (limited to 'users/Profpatsch/shell.nix')
-rw-r--r-- | users/Profpatsch/shell.nix | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/users/Profpatsch/shell.nix b/users/Profpatsch/shell.nix new file mode 100644 index 000000000000..cde599a8b414 --- /dev/null +++ b/users/Profpatsch/shell.nix @@ -0,0 +1,70 @@ +# 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 + ]}" + ]; +} |