49次发布 (16次重大变更)
0.18.1 | 2022年8月17日 |
---|---|
0.18.0 | 2022年6月28日 |
0.17.2 | 2022年6月27日 |
0.12.1 | 2022年3月18日 |
#341 in Unix API
每月下载 122 次
用于 anda
125KB
2.5K SLoC
flatpak-rs
Flatpak Rust库。
此库提供了解析和转储 flatpak 应用程序、模块或源清单的函数。该库的目标是与 flatpak-builder
支持的兼容。
请参阅此库的 API 文档。
安装
将库添加到您的 Cargo.toml
flatpak = "0"
通过 toml
功能提供实验性的 TOML 支持
flatpak = { version = "0", features = ["toml"] }
请注意,此库在 crates.io 上既被别名为 flatpak
也被别名为 flatpak-rs
。
用法
可以使用此库使用 FlatpakApplication
、FlatpakModule
和 FlatpakSource
结构体解析三种 Flatpak 清单。
从字符串解析
use flatpak_rs::application::FlatpakApplication;
use flatpak_rs::format::FlatpakManifestFormat;
let manifest = r###"
app-id: net.louib.flatpak-rs
runtime: org.gnome.Platform
runtime-version: "3.36"
sdk: org.gnome.Sdk
command: flatpak-rs
tags: ["nightly"]
modules:
-
name: "flatpak-rs"
buildsystem: simple
cleanup: [ "*" ]
config-opts: []
sources:
-
type: git
url: https://github.com/louib/flatpak-rs.git
branch: master
-
"shared-modules/linux-audio/lv2.json"
"###;
let application = FlatpakApplication::parse(FlatpakManifestFormat::YAML, manifest).unwrap();
assert_eq!(&application.app_id, "net.louib.flatpak-rs");
assert_eq!(application.modules.len(), 2 as usize);
println!("Parsed application manifest for {}.", &application.app_id);
从文件解析
use std::env;
use flatpak_rs::application::FlatpakApplication;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
eprintln!("Please provide a flatpak application manifest to parse.");
return;
}
let manifest_path = &args[1];
let application = FlatpakApplication::load_from_file(manifest_path.clone()).unwrap();
println!("Parsed application manifest for {}.", &application.get_id());
}
许可证
MIT
依赖
~4–6MB
~120K SLoC