crossbundle_tools/commands/android/common/
read_manifest.rs

1use crate::error::{AndroidError, Result};
2use android_manifest::AndroidManifest;
3use std::{fs::File, io::BufReader, path::Path};
4
5/// Read file and deserializes `AndroidManifest.xml` into
6/// [`AndroidManifest`](android_manifest::AndroidManifest)
7pub fn read_android_manifest(path: &Path) -> Result<AndroidManifest> {
8    let file = File::open(path).map_err(|_| {
9        AndroidError::FailedToFindAndroidManifest(path.to_string_lossy().to_string())
10    })?;
11    let reader = BufReader::new(&file);
12    Ok(android_manifest::from_reader(reader).map_err(AndroidError::from)?)
13}