From 06d77508860d438dfe926f2c8777440776202899 Mon Sep 17 00:00:00 2001 From: Joe Danziger Date: Sun, 11 May 2025 15:38:29 -0400 Subject: [PATCH] move renaming logic into profiles --- scripts/modules/rule-transformer.js | 15 ++------------- scripts/profiles/cursor.js | 13 ++++++++++++- scripts/profiles/roo.js | 8 ++++++++ scripts/profiles/windsurf.js | 16 +++++++++++++++- 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/scripts/modules/rule-transformer.js b/scripts/modules/rule-transformer.js index 7de1672f..42a5c0dc 100644 --- a/scripts/modules/rule-transformer.js +++ b/scripts/modules/rule-transformer.js @@ -215,22 +215,11 @@ function convertAllRulesToBrandRules(projectDir, profile) { let failed = 0; // Process each file in the Cursor rules directory + const getTargetRuleFilename = profile.getTargetRuleFilename || ((f) => f); fs.readdirSync(cursorRulesDir).forEach((file) => { if (file.endsWith('.mdc')) { const sourcePath = path.join(cursorRulesDir, file); - - // Determine target file name - let targetFilename; - if (fileMap[file]) { - // If an explicit mapping exists, use it - targetFilename = fileMap[file]; - } else if (brandName === 'Roo' || brandName === 'Windsurf') { - // For Roo and Windsurf, change .mdc to .md if not in fileMap - targetFilename = file.replace(/\.mdc$/, '.md'); - } else { - // For Cursor (and potentially others), keep original if not in fileMap - targetFilename = file; - } + const targetFilename = getTargetRuleFilename(file); const targetPath = path.join(brandRulesDir, targetFilename); // Convert the file diff --git a/scripts/profiles/cursor.js b/scripts/profiles/cursor.js index aecda6f3..b388579b 100644 --- a/scripts/profiles/cursor.js +++ b/scripts/profiles/cursor.js @@ -67,4 +67,15 @@ const conversionConfig = { } }; -export { conversionConfig, fileMap, globalReplacements, brandName, rulesDir }; +function getTargetRuleFilename(sourceFilename) { + return fileMap[sourceFilename] || sourceFilename; +} + +export { + conversionConfig, + fileMap, + globalReplacements, + brandName, + rulesDir, + getTargetRuleFilename +}; diff --git a/scripts/profiles/roo.js b/scripts/profiles/roo.js index b05cb61f..bfb058f8 100644 --- a/scripts/profiles/roo.js +++ b/scripts/profiles/roo.js @@ -221,11 +221,19 @@ function onPostConvertBrandRules(targetDir) { onAddBrandRules(targetDir); } +function getTargetRuleFilename(sourceFilename) { + if (fileMap[sourceFilename]) { + return fileMap[sourceFilename]; + } + return sourceFilename.replace(/\.mdc$/, '.md'); +} + export { conversionConfig, fileMap, globalReplacements, brandName, rulesDir, + getTargetRuleFilename, onPostConvertBrandRules }; diff --git a/scripts/profiles/windsurf.js b/scripts/profiles/windsurf.js index 21512162..7118da41 100644 --- a/scripts/profiles/windsurf.js +++ b/scripts/profiles/windsurf.js @@ -115,4 +115,18 @@ const conversionConfig = { } }; -export { conversionConfig, fileMap, globalReplacements, brandName, rulesDir }; +function getTargetRuleFilename(sourceFilename) { + if (fileMap[sourceFilename]) { + return fileMap[sourceFilename]; + } + return sourceFilename.replace(/\.mdc$/, '.md'); +} + +export { + conversionConfig, + fileMap, + globalReplacements, + brandName, + rulesDir, + getTargetRuleFilename +};