1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::error::*;
use std::{path::PathBuf, process::Command};
pub struct Aapt2Diff {
input_apks: Vec<PathBuf>,
help: bool,
}
impl Aapt2Diff {
pub fn new(input_apks: &[PathBuf]) -> Self {
Self {
input_apks: input_apks.to_vec(),
help: false,
}
}
pub fn help(&mut self, help: bool) -> &mut Self {
self.help = help;
self
}
pub fn run(&self) -> Result<()> {
let mut aapt2 = Command::new("aapt2");
aapt2.arg("diff");
self.input_apks.iter().for_each(|input_apks| {
aapt2.arg(input_apks);
});
if self.help {
aapt2.arg("-h");
}
aapt2.output_err(true)?;
Ok(())
}
}