From 727e6d890cad830c10c420f500583ebbed385d8a Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Sat, 7 Jan 2023 14:58:57 +0100 Subject: feat(users/Profpatsch): global shell for my userdir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- users/Profpatsch/shell.nix | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 users/Profpatsch/shell.nix (limited to 'users/Profpatsch/shell.nix') diff --git a/users/Profpatsch/shell.nix b/users/Profpatsch/shell.nix new file mode 100644 index 0000000000..cde599a8b4 --- /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 + ]}" + ]; +} -- cgit 1.4.1