add use_zip

This commit is contained in:
2020-04-12 23:55:59 +08:00
parent d89a426032
commit 136aafe2db
2 changed files with 32 additions and 12 deletions

View File

@@ -7,9 +7,10 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
# cargo b --features sequoia_openpgp # cargo b --features use_sequoia_openpgp
default = [] # "sequoia_openpgp" default = [] # "use_sequoia_openpgp"
sequoia_openpgp = ["sequoia-openpgp"] use_zip = []
use_sequoia_openpgp = ["sequoia-openpgp"]
[dependencies] [dependencies]
dirs = "2.0.1" dirs = "2.0.1"

View File

@@ -1,11 +1,12 @@
// #[macro_use] // #[macro_use]
// extern crate lazy_static; // extern crate lazy_static;
#[cfg(feature = "sequoia_openpgp")] #[cfg(feature = "use_sequoia_openpgp")]
extern crate sequoia_openpgp as openpgp; extern crate sequoia_openpgp as openpgp;
mod oss_util; mod oss_util;
#[cfg(feature = "sequoia_openpgp")] #[cfg(feature = "use_sequoia_openpgp")]
mod pgp_util; mod pgp_util;
mod config_util; mod config_util;
#[cfg(not(feature = "use_zip"))]
mod zip_util; mod zip_util;
mod opt; mod opt;
@@ -21,7 +22,7 @@ use rust_util::{
}; };
use oss_util::*; use oss_util::*;
use config_util::*; use config_util::*;
#[cfg(feature = "sequoia_openpgp")] #[cfg(feature = "use_sequoia_openpgp")]
use pgp_util::OpenPGPTool; use pgp_util::OpenPGPTool;
use opt::Options; use opt::Options;
@@ -127,12 +128,31 @@ fn process_config_item(options: &Options, config_item: &OSSBackupdConfigItem,
if options.verbose { if options.verbose {
print_message(MessageType::DEBUG, &format!("Compress file: {} -> {}", target, temp_zip_file)); print_message(MessageType::DEBUG, &format!("Compress file: {} -> {}", target, temp_zip_file));
} }
#[cfg(not(feature = "use_zip"))]
let zip_file = || {
if let Err(e) = zip_util::zip_file(target, temp_zip_file) { if let Err(e) = zip_util::zip_file(target, temp_zip_file) {
print_message(MessageType::ERROR, &format!("Error in zip file: {}, at item index: {}", e, item_index)); print_message(MessageType::ERROR, &format!("Error in zip file: {}, at item index: {}", e, item_index));
return Ok(()); return false;
};
true
};
#[cfg(feature = "use_zip")]
let zip_file = || {
let mut cmd = std::process::Command::new("zip");
cmd.args(&[temp_zip_file, target]);
if let Err(e) = rust_util::util_cmd::run_command_and_wait(&mut cmd) {
print_message(MessageType::ERROR, &format!("Error in zip file: {}, at item index: {}", e, item_index));
return false;
}
true
}; };
#[cfg(feature = "sequoia_openpgp")] if !zip_file() {
return Ok(());
}
#[cfg(feature = "use_sequoia_openpgp")]
let enc_file_by_pgp = || { let enc_file_by_pgp = || {
let open_pgp_tool = match OpenPGPTool::from_file(encrypt_pubkey_file) { let open_pgp_tool = match OpenPGPTool::from_file(encrypt_pubkey_file) {
Ok(t) => t, Err(e) => { Ok(t) => t, Err(e) => {
@@ -150,8 +170,7 @@ fn process_config_item(options: &Options, config_item: &OSSBackupdConfigItem,
}; };
return true; return true;
}; };
#[cfg(not(feature = "use_sequoia_openpgp"))]
#[cfg(not(feature = "sequoia_openpgp"))]
let enc_file_by_pgp = || { let enc_file_by_pgp = || {
let mut cmd = std::process::Command::new("gpg"); let mut cmd = std::process::Command::new("gpg");
cmd.args(&["-e", "-r", encrypt_pubkey_file, "-o", temp_pgp_file, temp_zip_file]); cmd.args(&["-e", "-r", encrypt_pubkey_file, "-o", temp_pgp_file, temp_zip_file]);