mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"os"
|
|
|
|
"github.com/0xJacky/Nginx-UI/internal/config"
|
|
"github.com/0xJacky/Nginx-UI/internal/helper"
|
|
"github.com/0xJacky/Nginx-UI/internal/nginx"
|
|
"github.com/mark3labs/mcp-go/mcp"
|
|
)
|
|
|
|
const nginxConfigMkdirToolName = "nginx_config_mkdir"
|
|
|
|
var nginxConfigMkdirTool = mcp.NewTool(
|
|
nginxConfigMkdirToolName,
|
|
mcp.WithDescription("Create a new directory in the Nginx configuration path"),
|
|
mcp.WithString("base_path", mcp.Description("The base path where to create the directory")),
|
|
mcp.WithString("folder_name", mcp.Description("The name of the folder to create")),
|
|
)
|
|
|
|
func handleNginxConfigMkdir(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
|
args := request.Params.Arguments
|
|
basePath := args["base_path"].(string)
|
|
folderName := args["folder_name"].(string)
|
|
|
|
fullPath := nginx.GetConfPath(basePath, folderName)
|
|
if !helper.IsUnderDirectory(fullPath, nginx.GetConfPath()) {
|
|
return nil, config.ErrPathIsNotUnderTheNginxConfDir
|
|
}
|
|
|
|
err := os.Mkdir(fullPath, 0755)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
result := map[string]interface{}{
|
|
"message": "Directory created successfully",
|
|
"path": fullPath,
|
|
}
|
|
|
|
jsonResult, _ := json.Marshal(result)
|
|
return mcp.NewToolResultText(string(jsonResult)), nil
|
|
}
|