Files
NixOS/parts/packages.nix
Danilo Reyes 6d29835303
Some checks failed
MCP Tests / mcp-tests (push) Failing after 13s
...5
2026-02-08 15:11:59 -06:00

73 lines
2.2 KiB
Nix

{ inputs, ... }:
{
perSystem =
{ system, pkgs, ... }:
let
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
'';
};
mcpTests = pkgs.writeShellApplication {
name = "mcp-tests";
runtimeInputs = with pkgs.python3Packages; [
black
click
mypy
pytest
ruff
];
text = ''
start_dir="$PWD"
if [ -n "''${MCP_TESTS_WORKDIR:-}" ]; then
cd "''${MCP_TESTS_WORKDIR}"
elif [ -n "''${GITEA_WORKSPACE:-}" ]; then
cd "''${GITEA_WORKSPACE}"
elif [ -n "''${GITHUB_WORKSPACE:-}" ]; then
cd "''${GITHUB_WORKSPACE}"
elif command -v git >/dev/null 2>&1; then
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -n "$repo_root" ]; then
cd "$repo_root"
fi
fi
while [ ! -x ./scripts/mcp-server/run-tests.sh ]; do
if [ "$PWD" = "/" ]; then
echo "Could not find executable scripts/mcp-server/run-tests.sh starting from $start_dir" >&2
exit 1
fi
cd ..
done
exec bash ./scripts/mcp-server/run-tests.sh "$@"
'';
};
in
{
packages = (inputs.jawz-scripts.packages.${system} or { }) // {
emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm;
vps-linode = inputs.self.nixosConfigurations.vps.config.system.build.images.linode;
mcp-tests = mcpTests;
nixos-mcp = nixosMcp;
nixos-mcp-server = mcpServerPkg;
};
};
}