This commit is contained in:
commit
95a533c876
451 changed files with 18255 additions and 0 deletions
69
pkgs/kicad-mcp/default.nix
Normal file
69
pkgs/kicad-mcp/default.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
fetchPypi,
|
||||
makeWrapper,
|
||||
nodejs,
|
||||
kicad,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
kicad-skip = import ./kicad-skip.nix { inherit lib python3 fetchPypi; };
|
||||
|
||||
pythonEnv = python3.withPackages (
|
||||
ps:
|
||||
[
|
||||
kicad-skip
|
||||
]
|
||||
++ (with ps; [
|
||||
cairosvg
|
||||
colorlog
|
||||
pillow
|
||||
pydantic
|
||||
python-dotenv
|
||||
requests
|
||||
])
|
||||
);
|
||||
in
|
||||
buildNpmPackage rec {
|
||||
pname = "kicad-mcp";
|
||||
version = "2.1.0-alpha";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mixelpixx";
|
||||
repo = "KiCAD-MCP-Server";
|
||||
rev = "d2723bc29207c942bc93083131e2ac2a8d1a82d5";
|
||||
hash = "sha256-WvEd+tSjAdc+qjFh4kUaWGnd9pEiJb6Og7i1viUqh94=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-nz73qj8CK2LyFixoF14ET2wq407YyuJUw/4VTDc80cQ=";
|
||||
|
||||
buildScript = "build";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
pythonEnv
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
makeWrapper ${nodejs}/bin/node $out/bin/${pname} \
|
||||
--add-flags "$out/lib/node_modules/${pname}/dist/index.js" \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
pythonEnv
|
||||
]
|
||||
} \
|
||||
--prefix PYTHONPATH : "${kicad}/lib/python3/dist-packages"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Model Context Protocol server for KiCAD";
|
||||
homepage = "https://github.com/mixelpixx/KiCAD-MCP-Server";
|
||||
};
|
||||
}
|
||||
35
pkgs/kicad-mcp/kicad-skip.nix
Normal file
35
pkgs/kicad-mcp/kicad-skip.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchPypi,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "kicad-skip";
|
||||
version = "0.2.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-3GtHIV2h6C8syFZ/Dx6OWsgpf14ZQdlnGS4EM4DgjIM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
python3.pkgs.setuptools
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
sexpdata
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"kicad_skip"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "A friendly way to skip the drudgery and manipulate kicad 7+ s-expression schematic, netlist and PCB files";
|
||||
homepage = "https://pypi.org/project/kicad-skip/";
|
||||
license = lib.licenses.lgpl21Only;
|
||||
mainProgram = "kicad-skip";
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue