-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdevshell.nix
More file actions
92 lines (70 loc) · 2.01 KB
/
devshell.nix
File metadata and controls
92 lines (70 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
{ ... }:
{
perSystem = { config, self', inputs', pkgs, system, ... }:
let
inherit (pkgs) lib;
python = pkgs.python310;
nodejs = pkgs.nodejs_20;
pnpm = (pkgs.runCommand "corepack-enable" { } ''
mkdir -p $out/bin
${nodejs}/bin/corepack enable --install-directory $out/bin
'');
parallel = (pkgs.writeScriptBin "parallel" ''
${lib.getExe pkgs.parallel} --will-cite "$@"
'');
system-packages = (with pkgs; [
nix
awscli2
parallel
xsv
clojure
clj-kondo
nodejs
pnpm
python
poetry
cairo
pango
pkg-config
inputs'.lpm-fidelity.packages.default
inputs'.lpm-discretize.packages.default
]);
linux-only-pkgs = lib.optionals pkgs.stdenv.isLinux (with pkgs; [
gcc.cc.libgcc
zlib
stdenv.cc.cc
libcxx
]);
darwin-only-pkgs = lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
darwin.apple_sdk.frameworks.CoreText
]);
packages = builtins.concatLists [
system-packages
linux-only-pkgs
darwin-only-pkgs
];
lib-path = pkgs.lib.makeLibraryPath packages;
in
{
devShells.default = pkgs.mkShell {
inherit packages;
shellHook = ''
export LD_LIBRARY_PATH="${lib-path}:$LD_LIBRARY_PATH"
pnpm install
poetry config virtualenvs.path --unset
poetry config virtualenvs.in-project true
poetry env use ${python}/bin/python
# We need to set PYTHON_KEYRING_BACKEND to use the null backend as
# `poetry install` will hang waiting for the keyring access on some
# distros
PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring \
poetry install --no-root
export PATH="$(poetry env info -p)/bin:$PWD/bin:$PATH"
venvSitePackages="$(python -c 'import sys; print(sys.path.pop())')"
export PYTHONPATH="$venvSitePackages:$PWD/bin:$PYTHONPATH"
mkdir -p .dvc/cache
dvc cache dir .dvc/cache
'';
};
};
}