1 个不稳定版本

0.1.0 2023年10月4日

#930数据结构


用于 yafsm

MIT/Apache

41KB
386

etc-os-release

Maintenance: passively-maintained License: MIT OR Apache-2.0 crates.io docs.rs Rust: ^1.70.0 GitHub Actions: CI Codecov

用于解析 /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 许可证定义的,您有意提交以包含在作品中的任何贡献,均应双重许可,如上所述,不附加任何额外条款或条件。

请参阅 CONTRIBUTING.md

依赖

~1–2.2MB
~44K SLoC