Files
NixOS/parts/packages.nix
Danilo Reyes 66483c89ac
All checks were successful
MCP Tests / mcp-tests (push) Successful in 19s
code rules
2026-03-23 15:49:51 -06:00

75 lines
2.0 KiB
Nix

{ inputs, ... }:
{
perSystem =
{ system, pkgs, ... }:
let
portableEmacs = import ../modules/dev/emacs/portable.nix {
inherit inputs pkgs;
};
mcpServerPkg = pkgs.python3Packages.buildPythonPackage {
pname = "nixos-mcp-server";
version = "0.1.0";
src = inputs.self + "/scripts/mcp-server";
pyproject = true;
build-system = with pkgs.python3Packages; [
setuptools
wheel
];
propagatedBuildInputs = with pkgs.python3Packages; [
click
mcp
];
doCheck = false;
};
mcpPython = pkgs.python3.withPackages (_: [ mcpServerPkg ]);
nixosMcp = pkgs.writeShellApplication {
name = "nixos-mcp";
runtimeInputs = [ mcpPython ];
text = ''
exec ${mcpPython}/bin/python -m mcp_server.server
'';
};
vpsLinodeConfig = inputs.self.nixosConfigurations.vps.extendModules {
modules = [
(
{ lib, ... }:
{
my = {
secureHost = lib.mkForce false;
build.baseImage = true;
};
}
)
];
};
mcpTests = pkgs.writeShellApplication {
name = "mcp-tests";
runtimeInputs = with pkgs.python3Packages; [
black
click
mypy
pytest
ruff
];
text = ''
exec bash ${inputs.self}/scripts/mcp-server/run-tests.sh "$@"
'';
};
in
{
apps.doom-emacs = portableEmacs.app;
packages =
(inputs.jawz-scripts.packages.${system} or { })
// {
doom-emacs = portableEmacs.package;
mcp-tests = mcpTests;
nixos-mcp = nixosMcp;
nixos-mcp-server = mcpServerPkg;
}
// pkgs.lib.optionalAttrs pkgs.stdenv.isLinux {
emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm;
vps-linode = vpsLinodeConfig.config.system.build.images.linode;
};
};
}