5 个版本
0.5.1 | 2024年2月11日 |
---|---|
0.5.0 | 2023年12月27日 |
0.4.2 | 2023年8月24日 |
0.4.1 | 2023年8月21日 |
0.4.0 | 2023年8月20日 |
#2461 in 命令行工具
被 cnf 使用
140KB
3K SLoC
cnf-lib - 为 cnf
提供的库代码
这里的代码有三个主要目的。
处理环境
"环境"是指提供一个或多个"提供者"(见下文)的任何东西。目前,支持的环境包括常规 Linux 主机、toolbox 容器和 distrobox 容器,尽管未来可能会有所变化。
通常,为了执行单个命令,需要暂时从环境中脱离出来。通常有控制机制来完成这个任务。这个 crate 的目标是在执行 htop
等命令时,在 toolbox 容器内透明地管理命令转换,同时在主机上工作。所有这些都在 Environment
类型中实现。
如果您想了解更多关于这种命令转换的信息,请查看 src/environment
中的文档和代码。
处理提供者
"提供者"是指提供可执行软件的任何东西。例如,系统 $PATH
(可执行文件通常位于此处,并且可以直接执行),但它还包括常规的包管理器,如 dnf
,通常需要在执行之前安装命令。
提供者可以搜索命令,并返回一个匹配搜索词的零个或多个可能的候选列表。所有这些都在 Provider
类型中实现。
处理命令调用
在环境之间转换常规命令行时,有一些陷阱,例如权限提升和正确读取 stdout/stderr。CommandLine
类型提供了必要的抽象,允许无缝执行命令,而无需担心目标环境中的权限提升等。
依赖关系
~10–25MB
~328K SLoC