diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-06-29 21:43:54 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-06-30 01:23:51 +0900 |
| commit | 4bc721c3bf7589b519c5730d093f704ce56e3f09 (patch) | |
| tree | 38da055ab15fd70f5c92584560ea73486e5ddce0 /src/app/main.c | |
| parent | 4c6a831aa2a57e2bcc20aa3fc2f1b7172f5be285 (diff) | |
refactor: MCP層をmcpc APIベースに刷新
- 独自JSON-RPC処理をmcpcへ置き換え
- 各MCPツールを個別ソースへ分離
- 共通コンテキストと登録処理を整理
- mcpc互換修正と統合テストを更新
Diffstat (limited to 'src/app/main.c')
| -rw-r--r-- | src/app/main.c | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/src/app/main.c b/src/app/main.c index ce43b61..f73b314 100644 --- a/src/app/main.c +++ b/src/app/main.c @@ -1,43 +1,41 @@ -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - #include <stdio.h> #include <stdlib.h> -#include <wchar.h> +#include <string.h> #include "mcp/server.h" #include "storage/store.h" +#include "sys/system.h" + +#include "base/allocator.h" static void usage(FILE *stream) { - fwprintf(stream, L"Usage: tiny-convmem-mcp --data-dir <path>\n"); + fprintf(stream, "Usage: tiny-convmem-mcp --data-dir <path>\n"); } -int -wmain(int argc, wchar_t **argv) +static int +run(const tiny_sys_arguments_t *arguments) { - wchar_t *absolute = NULL; - DWORD required; + char *absolute; tiny_store_t *store = NULL; tiny_store_status_t status; int result; - if (argc == 2 && wcscmp(argv[1], L"--help") == 0) + if (arguments->count == 2 && strcmp(arguments->values[1], "--help") == 0) { usage(stdout); return 0; } - if (argc != 3 || wcscmp(argv[1], L"--data-dir") != 0 || argv[2][0] == L'\0') + if (arguments->count != 3 || strcmp(arguments->values[1], "--data-dir") != 0 + || arguments->values[2][0] == '\0') { usage(stderr); return 2; } - required = GetFullPathNameW(argv[2], 0, NULL, NULL); - if (required == 0 || (absolute = malloc((size_t)required * sizeof(wchar_t))) == NULL - || GetFullPathNameW(argv[2], required, absolute, NULL) == 0) + absolute = tiny_sys_path_absolute(arguments->values[2]); + if (absolute == NULL) { fprintf(stderr, "unable to resolve --data-dir\n"); - free(absolute); return 2; } status = tiny_store_open(&store, absolute); @@ -55,3 +53,18 @@ wmain(int argc, wchar_t **argv) } return result; } + +int +main(int argc, char **argv) +{ + tiny_sys_arguments_t arguments; + int result; + if (!tiny_sys_arguments_init(&arguments, argc, argv)) + { + fprintf(stderr, "unable to read process arguments\n"); + return 2; + } + result = run(&arguments); + tiny_sys_arguments_free(&arguments); + return result; +} |
