Files
smtprd-ng/devenv.nix
2025-10-28 21:22:41 +01:00

60 lines
1.1 KiB
Nix

{
pkgs,
lib,
config,
inputs,
...
}:
let
req = pkgs.concatText "req" [
./requirements.txt
./requirements-dev.txt
];
in
{
# https://devenv.sh/packages/
packages = [
pkgs.file
pkgs.swig4
pkgs.openssl
];
env = {
LDFLAGS = "-L${pkgs.openssl.dev}/lib";
CFLAGS = "-I${pkgs.openssl.dev}/include";
SWIG_FEATURES = "-I${pkgs.openssl.dev}/include";
};
# https://devenv.sh/languages/
languages.nix.enable = true;
languages.python = {
enable = true;
libraries = [
pkgs.openssl.dev
];
venv = {
enable = true;
requirements = builtins.readFile req;
};
};
# https://devenv.sh/pre-commit-hooks/
git-hooks.hooks = {
nixfmt.enable = true;
# nixfmt.package = pkgs.nixfmt-rfc-style;
# remove unused imports
autoflake.enable = true;
# formatter
black.enable = true;
# sort imports
isort.enable = true;
# same profile for black and isort
isort.settings.flags = "--profile black";
# look for code smell
pylint.enable = true;
detect-private-keys.enable = true;
detect-private-keys.excludes = [ "tests/" ];
};
}