kwui_cli/
template_release.rs1use std::fs::File;
2use std::path::PathBuf;
3use flate2::Compression;
4use flate2::write::GzEncoder;
5use tar::Builder;
6use crate::check_source_dir;
7
8const KWUI_TEMPLATES: &'static str = "kwui-templates";
9
10pub fn package(source_dir: &PathBuf, key: &str) -> anyhow::Result<()> {
11 println!("Template release on source_dir [{}] with key {} ...", source_dir.display(), key);
12 check_source_dir(source_dir)?;
13
14 let cpp_android_template_dir = source_dir.join("kwui-sys/deps/kwui/cmake/AndroidPackaging.template");
15 let kwui_android_template_dir = source_dir.join("kwui-sys/deps/kwui/android/kwui");
16 let app_template_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("templates/app");
17
18 let out_filename = format!("{}-{}.tar.gz", KWUI_TEMPLATES, key);
19 let tar_gz = File::create(&out_filename)?;
20 let enc = GzEncoder::new(tar_gz, Compression::default());
21 let mut tar = Builder::new(enc);
22
23 tar.append_dir_all("app", app_template_dir)?;
24 tar.append_dir_all("app/android", cpp_android_template_dir)?;
25 tar.append_dir_all("app/android/kwui", kwui_android_template_dir)?;
26 tar.finish()?;
27
28 println!("Finished package [{}]", out_filename);
29
30 Ok(())
31}