1 个不稳定版本
0.1.0 | 2023年10月4日 |
---|
#930 在 数据结构
用于 yafsm
41KB
386 行
etc-os-release
用于解析 /etc/os-release
文件的自定义解析器和数据结构。
os-release 文件由 systemd 和其他工具使用,以存储有关操作系统发行版的信息。
该文件格式为类似环境变量的 shell 兼容变量赋值列表。
更多信息,请参阅 os-release(5)
用法
将此添加到您的 Cargo.toml
[dependencies]
etc-os-release = "0.1.0"
示例
打开 os-release 文件并打印 OS 名称和版本
use etc_os_release::OsRelease;
let os_release = OsRelease::open()?;
println!("{}-{}", os_release.id(), os_release.version_id().unwrap_or_default());
解析包含 os-release 文件内容的字符串
use std::str::FromStr;
use etc_os_release::OsRelease;
let os_release = OsRelease::from_str(r#"
NAME=Fedora
VERSION="32 (Workstation Edition)"
ID=fedora
VERSION_ID=32
PRETTY_NAME="Fedora 32 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:32"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=32
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=32
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
"#).unwrap();
assert_eq!(os_release.id(), "fedora");
assert_eq!(os_release.version_id(), Some("32"));
最低支持的 Rust 版本 (MSRV)
最低支持的 Rust 版本是 Rust 1.70.0。在任何时候都支持至少最后 3 个稳定 Rust 版本。
当 crate 处于预发布状态(0.x.x)时,它可能在修补版本中提高 MSRV。一旦 crate 达到 1.x,任何 MSRV 的提升都将伴随着一个新的小版本。
许可
本项目采用以下任一许可:
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,均应双重许可,如上所述,不附加任何额外条款或条件。
请参阅 CONTRIBUTING.md。
依赖
~1–2.2MB
~44K SLoC