diff options
| author | Aiden Cline <[email protected]> | 2025-09-10 14:05:26 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-10 14:05:26 -0500 |
| commit | 780e532094256d31e6b6ca3e836ae3af286c64ee (patch) | |
| tree | 0a7621e6cf7aa272025b984a1ebe64ed07678ed2 | |
| parent | 29310957c8aa0dd6c5ba17fbf22ce708c8ccb775 (diff) | |
| download | opencode-780e532094256d31e6b6ca3e836ae3af286c64ee.tar.gz opencode-780e532094256d31e6b6ca3e836ae3af286c64ee.zip | |
resolve nested commands (#2537)
| -rw-r--r-- | packages/opencode/src/config/config.ts | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 9bc9882f0..786ddcc65 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -118,16 +118,27 @@ export namespace Config { // Load command markdown files result.command = result.command || {} const markdownCommands = [ - ...(await Filesystem.globUp("command/*.md", Global.Path.config, Global.Path.config)), - ...(await Filesystem.globUp(".opencode/command/*.md", Instance.directory, Instance.worktree)), + ...(await Filesystem.globUp("command/**/*.md", Global.Path.config, Global.Path.config)), + ...(await Filesystem.globUp(".opencode/command/**/*.md", Instance.directory, Instance.worktree)), ] for (const item of markdownCommands) { const content = await Bun.file(item).text() const md = matter(content) if (!md.data) continue + const name = (() => { + const patterns = ["/.opencode/command/", "/command/"] + const pattern = patterns.find((p) => item.includes(p)) + + if (pattern) { + const index = item.indexOf(pattern) + return item.slice(index + pattern.length, -3) + } + return path.basename(item, ".md") + })() + const config = { - name: path.basename(item, ".md"), + name, ...md.data, template: md.content.trim(), } |
