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 | |
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>
-rw-r--r-- | users/Profpatsch/.envrc | 1 | ||||
-rw-r--r-- | users/Profpatsch/.gitignore | 1 | ||||
-rw-r--r-- | users/Profpatsch/.vscode/settings.json | 14 | ||||
-rw-r--r-- | users/Profpatsch/shell.nix | 70 |
4 files changed, 86 insertions, 0 deletions
diff --git a/users/Profpatsch/.envrc b/users/Profpatsch/.envrc new file mode 100644 index 000000000000..051d09d292a8 --- /dev/null +++ b/users/Profpatsch/.envrc @@ -0,0 +1 @@ +eval "$(lorri direnv)" diff --git a/users/Profpatsch/.gitignore b/users/Profpatsch/.gitignore new file mode 100644 index 000000000000..c33954f53a06 --- /dev/null +++ b/users/Profpatsch/.gitignore @@ -0,0 +1 @@ +dist-newstyle/ diff --git a/users/Profpatsch/.vscode/settings.json b/users/Profpatsch/.vscode/settings.json new file mode 100644 index 000000000000..81546964eb03 --- /dev/null +++ b/users/Profpatsch/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "sqltools.connections": [ + { + "previewLimit": 50, + "driver": "SQLite", + "name": "cas-serve", + "database": "${workspaceFolder:Profpatsch}/cas-serve/data.sqlite" + } + ], + "sqltools.useNodeRuntime": true, + "[haskell]": { + "editor.formatOnSave": true + } +} 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 + ]}" + ]; +} |