use tokio::sync::mpsc;
lazy_static! {
- static ref BACKUPSPEC_REGEX: Regex = Regex::new(r"^([a-zA-Z0-9_-]+\.(?:pxar|img|conf)):(.+)$").unwrap();
+ static ref BACKUPSPEC_REGEX: Regex = Regex::new(r"^([a-zA-Z0-9_-]+\.(?:pxar|img|conf|log)):(.+)$").unwrap();
static ref REPO_URL_SCHEMA: Arc<Schema> = Arc::new(
StringSchema::new("Repository URL.")
let mut upload_list = vec![];
- enum BackupType { PXAR, IMAGE, CONFIG };
+ enum BackupType { PXAR, IMAGE, CONFIG, LOGFILE };
for backupspec in backupspec_list {
let (target, filename) = parse_backupspec(backupspec.as_str().unwrap())?;
}
upload_list.push((BackupType::CONFIG, filename.to_owned(), target.to_owned(), metadata.len()));
}
+ "log" => {
+ if !file_type.is_file() {
+ bail!("got unexpected file type (expected regular file)");
+ }
+ upload_list.push((BackupType::LOGFILE, filename.to_owned(), target.to_owned(), metadata.len()));
+ }
_ => {
bail!("got unknown archive extension '{}'", extension);
}
println!("Upload config file '{}' to '{:?}' as {}", filename, repo, target);
client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
}
+ BackupType::LOGFILE => {
+ println!("Upload log file '{}' to '{:?}' as {}", filename, repo, target);
+ client.upload_blob_from_file(&filename, &target, crypt_config.clone(), true).wait()?;
+ }
BackupType::PXAR => {
println!("Upload directory '{}' to '{:?}' as {}", filename, repo, target);
backup_directory(