From eb1804c5676471422c4b23c8d8db58d659807a07 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 30 May 2019 12:19:23 +0200 Subject: [PATCH] src/bin/proxmox-backup-client.rs: use std lib instead of nix --- src/bin/proxmox-backup-client.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index 9bc70fc6..7e12865d 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -411,18 +411,23 @@ fn create_backup( for backupspec in backupspec_list { let (target, filename) = parse_backupspec(backupspec.as_str().unwrap())?; - let stat = match nix::sys::stat::stat(filename) { - Ok(s) => s, + use std::os::unix::fs::FileTypeExt; + + let metadata = match std::fs::metadata(filename) { + Ok(m) => m, Err(err) => bail!("unable to access '{}' - {}", filename, err), }; + let file_type = metadata.file_type(); - if (stat.st_mode & libc::S_IFMT) == libc::S_IFDIR { + if file_type.is_dir() { upload_list.push((filename.to_owned(), target.to_owned())); - } else if (stat.st_mode & (libc::S_IFREG|libc::S_IFBLK)) != 0 { - if stat.st_size <= 0 { bail!("got strange file size '{}'", stat.st_size); } - let _size = stat.st_size as usize; + } else if file_type.is_file() || file_type.is_block_device() { + + let size = tools::image_size(&PathBuf::from(filename))?; + + if size == 0 { bail!("got zero-sized file '{}'", filename); } panic!("implement me"); -- 2.39.2