Crates.io | flatpak-rs |
lib.rs | flatpak-rs |
version | 0.18.1 |
source | src |
created_at | 2021-10-19 20:41:11.709184 |
updated_at | 2022-08-17 23:44:06.251751 |
description | Flatpak library for Rust. |
homepage | |
repository | https://github.com/louib/flatpak-rs |
max_upload_size | |
id | 467531 |
size | 127,143 |
Flatpak library for Rust.
This library offers functions to parse and dump flatpak application,
module or source manifests. The goal of the library is to be compliant with what
flatpak-builder
supports.
See the API documentation for this library.
Add the library to your Cargo.toml
:
flatpak = "0"
Experimental TOML support is available via the toml
feature:
flatpak = { version = "0", features = ["toml"] }
Note that this library is aliased as both flatpak
and flatpak-rs
on crates.io.
All three denominations of Flatpak manifests can be parsed using this library,
using the FlatpakApplication
, FlatpakModule
and FlatpakSource
structs.
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