66 lines
1.9 KiB
Nix
66 lines
1.9 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 "${GITEA_WORKSPACE:-}" ]; then
|
|
cd "$GITEA_WORKSPACE"
|
|
elif [ -n "${GITHUB_WORKSPACE:-}" ]; then
|
|
cd "$GITHUB_WORKSPACE"
|
|
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;
|
|
};
|
|
};
|
|
}
|