mirror of
https://github.com/cjo4m06/mcp-shrimp-task-manager.git
synced 2025-07-26 07:52:25 +08:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import fs from "fs/promises";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
|
|
// 獲取項目根目錄路徑
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
const PROJECT_ROOT = path.resolve(__dirname, "../..");
|
|
|
|
// 獲取數據目錄路徑
|
|
const DATA_DIR = process.env.DATA_DIR || path.join(PROJECT_ROOT, "data");
|
|
|
|
/**
|
|
* 獲取規則文件路徑
|
|
* @returns 規則文件的完整路徑
|
|
*/
|
|
export function getRulesFilePath(): string {
|
|
return path.join(DATA_DIR, "rules.md");
|
|
}
|
|
|
|
/**
|
|
* 確保規則文件存在
|
|
* 如果文件不存在,會嘗試從根目錄複製,或創建空文件
|
|
*/
|
|
export async function ensureRulesFileExists(): Promise<void> {
|
|
const dataRulesPath = getRulesFilePath();
|
|
|
|
try {
|
|
// 檢查 DATA_DIR 目錄中是否存在規則文件
|
|
await fs.access(dataRulesPath);
|
|
} catch (error) {
|
|
// DATA_DIR 目錄中不存在規則文件
|
|
await fs.mkdir(path.dirname(dataRulesPath), { recursive: true });
|
|
await fs.writeFile(
|
|
dataRulesPath,
|
|
"# 開發守則\n\n請在此文件中定義專案規範。",
|
|
"utf-8"
|
|
);
|
|
console.log(`已在 ${dataRulesPath} 創建空規則文件`);
|
|
}
|
|
}
|