2025-12-12 04:10:50 +01:00
|
|
|
# Enabled when: dev
|
2025-02-18 20:17:57 +01:00
|
|
|
{
|
2025-12-12 04:10:50 +01:00
|
|
|
config,
|
2025-12-01 13:19:48 +01:00
|
|
|
lib,
|
2025-12-12 04:10:50 +01:00
|
|
|
pkgs,
|
2025-02-18 20:17:57 +01:00
|
|
|
pkgsUnstable,
|
|
|
|
|
...
|
2025-12-12 03:38:32 +01:00
|
|
|
}: let
|
2025-12-01 13:19:48 +01:00
|
|
|
# Sets LD_LIBRARY_PATH for various python-based tools
|
|
|
|
|
# Some python packages requires shared libraries to build C extensions.
|
|
|
|
|
mkWrapLDLibraryPath = pkg: let
|
|
|
|
|
mainProgram = pkg.meta.mainProgram or pkg.pname or (lib.getName pkg);
|
2025-12-12 03:38:32 +01:00
|
|
|
in
|
|
|
|
|
pkgs.symlinkJoin {
|
|
|
|
|
name = "${pkg.name}-wrapped";
|
|
|
|
|
paths = [pkg];
|
|
|
|
|
nativeBuildInputs = [pkgs.makeWrapper];
|
|
|
|
|
postBuild = ''
|
|
|
|
|
wrapProgram $out/bin/${mainProgram} \
|
|
|
|
|
--run "export LD_LIBRARY_PATH=\$NIX_LD_LIBRARY_PATH"
|
|
|
|
|
'';
|
|
|
|
|
};
|
2025-12-01 13:19:48 +01:00
|
|
|
in {
|
2025-12-12 04:10:50 +01:00
|
|
|
config = lib.mkIf config.fireproof.dev.enable {
|
|
|
|
|
environment.systemPackages = [
|
|
|
|
|
(mkWrapLDLibraryPath pkgsUnstable.uv)
|
|
|
|
|
(mkWrapLDLibraryPath pkgsUnstable.rye)
|
|
|
|
|
(mkWrapLDLibraryPath pkgs.python3)
|
|
|
|
|
(mkWrapLDLibraryPath pkgsUnstable.prek)
|
2025-02-19 23:42:24 +01:00
|
|
|
];
|
2025-12-12 04:10:50 +01:00
|
|
|
|
|
|
|
|
# uv tool adds executable to $HOME/.local/bin, so add it to PATH
|
|
|
|
|
fireproof.home-manager = {
|
|
|
|
|
home.sessionPath = [
|
|
|
|
|
"$HOME/.local/bin"
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-02-19 23:42:24 +01:00
|
|
|
};
|
2025-02-18 20:17:57 +01:00
|
|
|
}
|