61个版本 (18个不兼容的版本)
0.18.1 | 2022年8月17日 |
---|---|
0.18.0 | 2022年6月28日 |
0.17.2 | 2022年6月27日 |
0.12.1 | 2022年3月18日 |
0.0.8 | 2021年11月18日 |
#515 in Unix API
每月下载量 136次
在 2 crates 中使用
130KB
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