src/bin/proxmox-backup-client.rs: strip .didx file extensions
This commit is contained in:
		@ -12,7 +12,7 @@ use std::os::unix::io::AsRawFd;
 | 
			
		||||
use uuid::Uuid;
 | 
			
		||||
use chrono::{Local, TimeZone};
 | 
			
		||||
 | 
			
		||||
/// Header format definition for fixed index files (`.fixd`)
 | 
			
		||||
/// Header format definition for fixed index files (`.fidx`)
 | 
			
		||||
#[repr(C)]
 | 
			
		||||
pub struct FixedIndexHeader {
 | 
			
		||||
    /// The string `PROXMOX-FIDX`
 | 
			
		||||
 | 
			
		||||
@ -90,6 +90,23 @@ fn backup_image(datastore: &DataStore, file: &std::fs::File, size: usize, target
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
fn strip_chunked_file_expenstions(list: Vec<String>) -> Vec<String> {
 | 
			
		||||
 | 
			
		||||
    let mut result = vec![];
 | 
			
		||||
 | 
			
		||||
    for file in list.into_iter() {
 | 
			
		||||
        if file.ends_with(".didx") {
 | 
			
		||||
            result.push(file[..file.len()-5].to_owned());
 | 
			
		||||
        } else if file.ends_with(".fidx") {
 | 
			
		||||
            result.push(file[..file.len()-5].to_owned());
 | 
			
		||||
        } else {
 | 
			
		||||
            result.push(file); // should not happen
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    result
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn list_backups(
 | 
			
		||||
    param: Value,
 | 
			
		||||
    _info: &ApiMethod,
 | 
			
		||||
@ -117,12 +134,11 @@ fn list_backups(
 | 
			
		||||
        let backup_dir = BackupDir::new(btype, id, epoch);
 | 
			
		||||
 | 
			
		||||
        let files = item["files"].as_array().unwrap().iter().map(|v| v.as_str().unwrap().to_owned()).collect();
 | 
			
		||||
        let files = strip_chunked_file_expenstions(files);
 | 
			
		||||
 | 
			
		||||
        let info = BackupInfo { backup_dir, files };
 | 
			
		||||
 | 
			
		||||
        for filename in info.files {
 | 
			
		||||
            let path = info.backup_dir.relative_path().to_str().unwrap().to_owned();
 | 
			
		||||
            println!("{} | {}/{}", info.backup_dir.backup_time().format("%c"), path, filename);
 | 
			
		||||
        for filename in files {
 | 
			
		||||
            let path = backup_dir.relative_path().to_str().unwrap().to_owned();
 | 
			
		||||
            println!("{} | {}/{}", backup_dir.backup_time().format("%c"), path, filename);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -174,10 +190,8 @@ fn list_backup_groups(
 | 
			
		||||
 | 
			
		||||
        let path = group.group_path().to_str().unwrap().to_owned();
 | 
			
		||||
 | 
			
		||||
        let files = item["files"].as_array().unwrap().iter()
 | 
			
		||||
            .map(|v| {
 | 
			
		||||
                v.as_str().unwrap().to_owned()
 | 
			
		||||
            }).collect();
 | 
			
		||||
        let files = item["files"].as_array().unwrap().iter().map(|v| v.as_str().unwrap().to_owned()).collect();
 | 
			
		||||
        let files = strip_chunked_file_expenstions(files);
 | 
			
		||||
 | 
			
		||||
        println!("{:20} | {} | {:5} | {}", path, last_backup.format("%c"),
 | 
			
		||||
                 backup_count, tools::join(&files, ' '));
 | 
			
		||||
@ -224,10 +238,8 @@ fn list_snapshots(
 | 
			
		||||
 | 
			
		||||
        let path = snapshot.relative_path().to_str().unwrap().to_owned();
 | 
			
		||||
 | 
			
		||||
        let files = item["files"].as_array().unwrap().iter()
 | 
			
		||||
            .map(|v| {
 | 
			
		||||
                v.as_str().unwrap().to_owned()
 | 
			
		||||
            }).collect();
 | 
			
		||||
        let files = item["files"].as_array().unwrap().iter().map(|v| v.as_str().unwrap().to_owned()).collect();
 | 
			
		||||
        let files = strip_chunked_file_expenstions(files);
 | 
			
		||||
 | 
			
		||||
        println!("{} | {} | {}", path, snapshot.backup_time().format("%c"), tools::join(&files, ' '));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user