forked from
lewis.moe/bspds-sandbox
PDS software with bells & whistles you didn’t even know you needed. will move this to its own account when ready.
1{
2 lib,
3 mkShell,
4 callPackage,
5 rustPlatform,
6
7 # repo tooling
8 just,
9 podman,
10 podman-compose,
11
12 # rust tooling
13 clippy,
14 rustfmt,
15 rust-analyzer,
16 sqlx-cli,
17 mold,
18
19 # frontend tooling
20 deno,
21 svelte-language-server,
22 typescript-language-server,
23}: let
24 defaultPackage = callPackage ./default.nix { };
25in mkShell {
26 inputsFrom = [ defaultPackage ];
27
28 env = {
29 RUST_SRC_PATH = rustPlatform.rustLibSrc;
30 }
31 # isabel if this is like a horrible way to do this forgive me for my sins ig
32 # if you can make this better go do it and tell me how or something :3
33 // builtins.fromTOML (
34 (s: if s == "" then s else s + "\"") (lib.replaceStrings [ "\n" "=" "\"" ] [ "\"\n" "=\"" "\\\"" ]
35 (lib.concatStringsSep "\n"
36 (lib.filter (line: !lib.hasPrefix "#" line && line != "")
37 (lib.splitString "\n"
38 (if lib.pathIsRegularFile ./.env
39 then (lib.readFile ./.env)
40 else ""
41 )
42 )
43 )
44 )
45 )
46 );
47
48 packages = [
49 just
50 podman
51 podman-compose
52
53 clippy
54 rustfmt
55 rust-analyzer
56 sqlx-cli
57 mold
58
59 deno
60 svelte-language-server
61 typescript-language-server
62 ];
63}
64