crossbundle_tools/commands/android/common/
write_zip.rs1use std::path::Path;
2use zip::ZipWriter;
3use zip_extensions::write::ZipWriterExtensions;
4
5pub fn zip_write(source_path: &Path, archive_file: &Path) -> zip::result::ZipResult<()> {
7 let file = std::fs::File::create(archive_file)?;
8 let mut zip = ZipWriter::new(file);
9 zip.create_from_directory(&source_path.to_path_buf())?;
10 Ok(())
11}
12
13pub fn zip_dirs_to_write(source_path: &Path) -> fs_extra::error::Result<()> {
15 let path = source_path.join("AndroidManifest.xml");
16 if path.exists() {
17 let manifest_path = source_path.join("manifest");
18 if !manifest_path.exists() {
19 std::fs::create_dir_all(&manifest_path)?;
20 }
21 let mut options = fs_extra::file::CopyOptions::new();
22 options.overwrite = true;
23 fs_extra::file::move_file(&path, &manifest_path.join("AndroidManifest.xml"), &options)?;
24 }
25 Ok(())
26}