mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-19 00:34:23 +01:00
fix: handle Git Bash path mapping on windows (#4380)
This commit is contained in:
@@ -89,10 +89,18 @@ export const BashTool = Tool.define("bash", {
|
|||||||
.text()
|
.text()
|
||||||
.then((x) => x.trim())
|
.then((x) => x.trim())
|
||||||
log.info("resolved path", { arg, resolved })
|
log.info("resolved path", { arg, resolved })
|
||||||
if (resolved && !Filesystem.contains(Instance.directory, resolved)) {
|
if (resolved) {
|
||||||
throw new Error(
|
// Git Bash on Windows returns Unix-style paths like /c/Users/...
|
||||||
`This command references paths outside of ${Instance.directory} so it is not allowed to be executed.`,
|
const normalized =
|
||||||
)
|
process.platform === "win32" && resolved.match(/^\/[a-z]\//)
|
||||||
|
? resolved.replace(/^\/([a-z])\//, (_, drive) => `${drive.toUpperCase()}:\\`).replace(/\//g, "\\")
|
||||||
|
: resolved
|
||||||
|
|
||||||
|
if (!Filesystem.contains(Instance.directory, normalized)) {
|
||||||
|
throw new Error(
|
||||||
|
`This command references paths outside of ${Instance.directory} so it is not allowed to be executed.`,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user