Skip to content

[anolisa] feat(adapter): detect 探测框架 + {datadir} 占位符展开 #811

@kongche-jbw

Description

@kongche-jbw

背景

#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.rsAdapterSpec 定义
  • crates/anolisa-core/src/state.rs — 状态追踪
  • crates/anolisa-core/src/fs_layout.rsFsLayout 定义

验收标准

  • detect 探测函数可独立调用,返回 bool + 原因描述
  • 占位符展开函数可被其他子命令复用
  • 单元测试覆盖 binary/path 探测场景

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions