8 个稳定版本 (3 个主要版本)
3.1.0 | 2023年3月24日 |
---|---|
3.0.0 | 2022年12月1日 |
2.1.2 | 2022年8月5日 |
2.1.0 | 2020年12月22日 |
0.1.0 | 2016年3月13日 |
#43 in Rust 模式
601,556 每月下载量
用于 818 个包 (399 直接)
61KB
654 行
shellexpand,一个用于字符串 Shell 类似扩展的库
shellexpand 是一个单依赖库,允许在字符串中执行 Shell 类似扩展,即扩展变量,例如 $A
或 ${B}
在某些上下文中的值,并将 ~
在字符串开头扩展为家目录(同样是在某些上下文中)。
此包提供了一组通用函数,这些函数接受任意上下文,以及基于系统的默认函数,这些函数使用系统上下文执行扩展(由 std::env
模块和 dirs 包表示)。
此包的替代方案
expanduser
: 仅支持波浪线替换。支持~user
,而此包目前不支持(尽管我们希望支持)。envsubst
: 不提供波浪线扩展。仅支持某些具体类型(例如,变量映射的HashMap
)。expand_str
: 使用%..%
语法。不提供波浪线扩展。变量查找只能是确定的。tilde_expand
: 仅进行波浪线扩展,在字节([u8]
)上。
使用方法
只需在您的 Cargo.toml
中添加依赖项
[dependencies]
shellexpand = "3.0"
有关更多信息示例,请参阅包文档(链接位于本说明书的开头)。
Cargo 功能
功能功能
tilde
(默认开启):支持波浪线扩展(家目录)。path
(在full
中): 支持对Path
的操作。(MSRV: 1.51)
元特性
full
:所有合理的(非实验性、非危害性)功能。(目前相当于full-msrv-1.51
。)base-0
(默认开启):基本功能。您必须启用此功能。full-msrv-1.51
:所有与 Rust 1.51 兼容的合理功能。(目前:base-0
,tilde
,paths
。)full-msrv-1.31
:所有与 Rust 1.31 兼容的合理功能。(目前:base-0
,tilde
。)
编写本文档时,没有实验性或危害性功能;如果引入任何功能,它将被功能门控,默认不开启,也不是 full*
的一部分。要求 base-0
允许我们将现有功能拆分为新的可选功能,而不破坏 semver。我们将尽量避免提高现有功能的 MSRV;提高 full
的 MSRV 将是次要版本升级。
变更日志
版本 3.1.0 - 2023-03-24
新增
- cargo 特性
full-msrv-1.31
和full-msrv-1.51
修复
- 显式声明
paths
特性的 MSRV 为 1.51。 - 修复了具有 MSRV(1.31)的构建(没有
paths
特性)。
改进
- 测试了 MSRV。
- 更新到
dirs
5。(也可以使用 dirs 4,因为它没问题。) - 更新
Cargo.lock.exaple
版本 3.0.0 - 2022-12-01
重大更改
tilde_with_context
和full_with_context
现在期望家目录为str
类型,而不是Path
类型。如果您想处理 Path 类型,请使用path
特性和模块。- 您必须选择至少一个 cargo 特性。
base-0
特性与 shellexpand 2.x 中可用的特性等效。
重大更改
- 使用 Rust 2018,将 MSRV 提高到 1.31.0。
- 新增
path
模块,以及相应的 cargo 特性。
版本 2.1.2
小更改
- "Un-forked":现在作为
shellexpand
在 crates.io 上发布。 - 列出此 crate 的替代方案。
- 从 dirs-next 切换回 dirs。
- 改进文档中的链接,并修复损坏的链接和徽章。
- 应用一些来自
cargo fix
的建议。
版本 2.1.1
- 修复了在 Windows 上使用 Windows 风格(反斜杠)路径进行 tilde 扩展的问题。解决了 https://github.com/netvl/shellexpand/pull/13。
- 在 crates.io 上作为
shellexpand-fork
分叉。
版本 2.1.0
- 切换到
dirs-next
而不是过时的dirs
,作为用于解析家目录的基础依赖。 - 将项目构建从 Travis CI 切换到 GitHub Actions。
版本 2.0.0
- 增加了变量扩展中默认值的支持(即
${ANSWER:-42}
) - 破坏性更改(最低Rust版本现在是1.30.0)
- 使用
dyn
为特质对象以解决弃用警告 - 在
Error
实现中,将使用source()
替换cause()
,因此为泛型错误参数E
添加了'static
约束
- 使用
版本1.1.1
- 将
dirs
依赖项升级到2.0。
版本1.1.0
- 将弃用的
std::env::home_dir
更改为dirs::home_dir函数
版本1.0.0
- 修复了文档中的错别字和轻微的不完整性
- 将波浪号扩展函数的
home_dir
参数类型更改为FnOnce
而不是FnMut
- 将
LookupError::name
字段名称更改为var_name
版本0.1.0
- 首次发布
许可
此程序根据您选择以下任一项许可
- Apache License,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可定义,应如上双许可,不附加任何其他条款或条件。
依赖项
~0–10MB
~58K SLoC