概览
dsh-git-bash
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- **不经过文件沙箱**:命令以 DSH 进程自身的权限执行,不会产生 `[sandbox: file access denied]` 之类的提示。原因很实际 —— Git Bash 是 MSYS2 进程,在 Windows 受限令牌下需要 fork、管道与私有临时目录,行为不可靠,因此有意不接沙箱。 - **只跟一个收口点,不跟上游的入口命名**:上游 `dsh-bash-local` 的子类入口改过名(`run`/`start` + `runArgv`/`startArgv` → `execute`/`executeArgv`),但每条执行路径最终都要经过 `spawnSpec(spec, argv, …)` 把 argv 落成 spawn 配置。本插件就在这个收口点把裸 `bash` 换成解析出来的 Git Bash,所以入口再改名也不会退回裸 `bash`;命名过的入口照旧覆盖一层,作为第二道保险。首次执行时还会走一遍公开路径(`resolve` → `execute` → `result`)自检并把 shell 身份写进日志 —— 万一上游连收口点都换掉,日志里会直接出现 `self-check FAILED`,而不是让命令输出一片乱码。 - **只读、不动环境**:解析全程只读注册表并反推 PATH;不改 `PATH`、不改注册表、不改 DSH 自身,升级 DSH 后不需要任何额外配置。 - **`file:` 依赖是拷贝,不是软链**:改完代码后要 `remove` → `add` → 重启才会生效。 - **仅 Windows 需要**:POSIX 平台上 DSH 本来就有 bash 工具,装这个插件没有意义。 ---
