11 个版本 (6 个稳定版)
1.3.0 | 2022 年 2 月 3 日 |
---|---|
1.2.0 | 2021 年 7 月 30 日 |
1.1.2 | 2021 年 5 月 7 日 |
1.1.1 | 2020 年 11 月 8 日 |
0.2.0 | 2020 年 3 月 27 日 |
在 Unix APIs 中排名 #172
每月下载量 8,542
在 16 个 crate 中使用(直接使用 11 个)
39KB
824 行代码(不包括注释)
Freedesktop Entry Parser
Rust 中用于解析 FreeDesktop 入口文件的库。这些文件用于 Desktop Entry、Icon Theme 和 Systemd Unit 文件。它们类似于 ini 文件,但足够独特,因此使用 ini 解析器将无法正常工作。
示例用法
让我们以 sshd.service
的内容作为示例输入
[Unit]
Description=OpenSSH Daemon
Wants=sshdgenkeys.service
After=sshdgenkeys.service
After=network.target
[Service]
ExecStart=/usr/bin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
例如,要打印启动命令,我们可以这样做
use freedesktop_entry_parser::parse_entry;
let entry = parse_entry("./test_data/sshd.service")?;
let start_cmd = entry
.section("Service")
.attr("ExecStart")
.expect("Attribute doesn't exist");
println!("{}", start_cmd);
这会打印 /usr/bin/sshd -D
有关更多文档,请参阅 docs.rs 或通过克隆仓库并运行 cargo doc
生成文档。有关更多示例,请参阅仓库中的 示例。
MSRV 政策
当前最低支持的 rustc 版本在上面的说明中指定。我们保留在次要版本增加时更改此版本的权利,但我们将尽力保持合理。鉴于此库功能完整,MSRV 可能只会随着我们的依赖项而改变。
贡献
请将任何补丁、错误和问题发送到我的公开邮箱 ~zethra/[email protected] 或如果您愿意,提交给错误跟踪器 todo.sr.ht/~zethra/linicon。
依赖项
~1.2–1.8MB
~37K SLoC