From f46ea51aabbdd7f9d281379f1f04e9bfd82fb657 Mon Sep 17 00:00:00 2001 From: lipingEmmaSiguyi <1477412247@qq.com> Date: Thu, 17 Apr 2025 21:42:13 +0800 Subject: [PATCH] add spec template --- servers/oedevplugin-builder/mcp_config.json | 4 +- .../oedevplugin-builder.spec | 67 +++++++++++++++++++ .../oedevplugin-builder/src/requirements.txt | 1 + servers/oedevplugin-builder/src/server.py | 4 ++ 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 servers/oedevplugin-builder/oedevplugin-builder.spec create mode 100644 servers/oedevplugin-builder/src/requirements.txt diff --git a/servers/oedevplugin-builder/mcp_config.json b/servers/oedevplugin-builder/mcp_config.json index d7f5339..64d577a 100644 --- a/servers/oedevplugin-builder/mcp_config.json +++ b/servers/oedevplugin-builder/mcp_config.json @@ -1,10 +1,10 @@ { "mcpServers": { "编译构建打包最新的 oeDevPlugin rpm 包": { - "command": "uv", + "command": "/opt/mcp-servers/servers/oedevplugin-builder/.venv/bin/uv", "args": [ "--directory", - "YOUR_PATH/mcp-servers/servers/oedevplugin-builder/src", + "/opt/mcp-servers/servers/oedevplugin-builder/src", "run", "server.py" ], diff --git a/servers/oedevplugin-builder/oedevplugin-builder.spec b/servers/oedevplugin-builder/oedevplugin-builder.spec new file mode 100644 index 0000000..7fb16a5 --- /dev/null +++ b/servers/oedevplugin-builder/oedevplugin-builder.spec @@ -0,0 +1,67 @@ +Name: oedevplugin-builder +Version: 1.0.0 +Release: 1 +Summary: MCP server for building oeDevPlugin RPM packages + +License: MIT +URL: https://gitee.com/openeuler/mcp-servers +BuildRequires: python3-devel + +Source0: src/server.py +Source1: mcp_config.json +Source2: src/requirements.txt +BuildRequires: python3-setuptools +Requires: python3 +Requires: uv +Requires: python3-mcp + +%description +MCP server that provides tools for building oeDevPlugin RPM packages. + +%build +# Nothing to build for Python script + +%install +mkdir -p %{buildroot}/opt/mcp-servers/servers/oedevplugin-builder/src +mkdir -p %{buildroot}/opt/mcp-servers/servers/oedevplugin-builder + +install -m 755 %{SOURCE0} %{buildroot}/opt/mcp-servers/servers/oedevplugin-builder/src/server.py +install -m 644 %{SOURCE1} %{buildroot}/opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json +install -m 644 %{SOURCE2} %{buildroot}/opt/mcp-servers/servers/oedevplugin-builder/src/requirements.txt + +%files +/opt/mcp-servers/servers/oedevplugin-builder/src/server.py +/opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json +/opt/mcp-servers/servers/oedevplugin-builder/src/requirements.txt + +%post +# 创建venv并安装依赖 +uv venv /opt/mcp-servers/servers/oedevplugin-builder/.venv --python /bin/python3 +source /opt/mcp-servers/servers/oedevplugin-builder/.venv/bin/activate + +# skip install dependencies +# uv pip install -r /opt/mcp-servers/servers/oedevplugin-builder/src/requirements.txt + +# 为root用户合并配置 +mkdir -p /root/.roo +if [ -f /root/.roo/mcp.json ]; then + jq -s '.[0] * .[1]' /root/.roo/mcp.json /opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json > /root/.roo/mcp.json.tmp && mv /root/.roo/mcp.json.tmp /root/.roo/mcp.json +else + cp /opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json /root/.roo/mcp.json +fi + +# 为所有普通用户合并配置 +for user_home in /home/*; do + if [ -d "$user_home" ]; then + mkdir -p "$user_home/.roo" + if [ -f "$user_home/.roo/mcp.json" ]; then + jq -s '.[0] * .[1]' "$user_home/.roo/mcp.json" /opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json > "$user_home/.roo/mcp.json.tmp" && mv "$user_home/.roo/mcp.json.tmp" "$user_home/.roo/mcp.json" + else + cp /opt/mcp-servers/servers/oedevplugin-builder/mcp_config.json "$user_home/.roo/mcp.json" + fi + fi +done + +%changelog +* Wed Apr 16 2025 Your Name - 1.0.0-1 +- Initial package diff --git a/servers/oedevplugin-builder/src/requirements.txt b/servers/oedevplugin-builder/src/requirements.txt new file mode 100644 index 0000000..0da3b1d --- /dev/null +++ b/servers/oedevplugin-builder/src/requirements.txt @@ -0,0 +1 @@ +setuptools>=65.0.0 \ No newline at end of file diff --git a/servers/oedevplugin-builder/src/server.py b/servers/oedevplugin-builder/src/server.py index 018fa12..f1a216e 100644 --- a/servers/oedevplugin-builder/src/server.py +++ b/servers/oedevplugin-builder/src/server.py @@ -44,6 +44,10 @@ def build_tar(ctx: Context, package_name: str) -> str: if not version: return "错误: 无法从spec文件解析版本号" + # 检查源码目录是否存在 + if not source_dir.exists(): + return "跳过打包: 未找到源码目录,继续RPM构建流程" + # 打包最新源码为.gz格式 tar_name = f"{package_name}-{version}.tar.gz" tar_path = RPMBUILD_DIR / "SOURCES" / tar_name -- Gitee