背景
从 #794 拆分。这是 adapter 命令族的基础设施,install 和 scan 都依赖本 issue。
实现内容
1. detect 探测框架
实现通用 detect 探测逻辑,支持 AdapterSpec.detect 中的多种探测类型:
binary: 检查二进制文件是否存在于 PATH 中
paths: 检查指定路径是否存在
- 可扩展的探测接口,方便后续添加命令检查等
detect 字段类型为 BTreeMap<String, toml::Value>,需要解析不同 key 并执行对应探测。
2. {datadir} 占位符展开
- adapter 的
dest 字段使用 {datadir} 等布局占位符
- 复用
FsLayout 将占位符展开为实际路径
- 确保展开逻辑可被 install/remove/scan 共享
相关文件
crates/anolisa-core/src/manifest.rs — AdapterSpec 定义
crates/anolisa-core/src/state.rs — 状态追踪
crates/anolisa-core/src/fs_layout.rs — FsLayout 定义
验收标准
背景
从 #794 拆分。这是 adapter 命令族的基础设施,install 和 scan 都依赖本 issue。
实现内容
1. detect 探测框架
实现通用 detect 探测逻辑,支持
AdapterSpec.detect中的多种探测类型:binary: 检查二进制文件是否存在于 PATH 中paths: 检查指定路径是否存在detect字段类型为BTreeMap<String, toml::Value>,需要解析不同 key 并执行对应探测。2.
{datadir}占位符展开dest字段使用{datadir}等布局占位符FsLayout将占位符展开为实际路径相关文件
crates/anolisa-core/src/manifest.rs—AdapterSpec定义crates/anolisa-core/src/state.rs— 状态追踪crates/anolisa-core/src/fs_layout.rs—FsLayout定义验收标准