From c78fc583b012e91a538a3a113ff0bd15c7ef5783 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 21 Jun 2021 09:11:28 +0200 Subject: [PATCH] Fix: target_family unix means also macos and linux; use BSD target_os --- Cargo.toml | 4 +- src/config/mod.rs | 2 +- src/filetransfer/ftp_transfer.rs | 2 +- src/filetransfer/scp_transfer.rs | 2 +- src/fs/explorer/formatter.rs | 20 ++++----- src/fs/explorer/mod.rs | 2 +- src/host/mod.rs | 56 +++++++++++++------------- src/system/bookmarks_client.rs | 14 ++++++- src/ui/activities/filetransfer/view.rs | 8 ++-- src/utils/fmt.rs | 2 +- 10 files changed, 61 insertions(+), 51 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2d91ae6..47ed781 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ pretty_assertions = "0.7.2" github-actions = [] with-containers = [] -[target."cfg(any(target_family = \"unix\", target_os = \"macos\", target_os = \"linux\"))"] -[target."cfg(any(target_family = \"unix\", target_os = \"macos\", target_os = \"linux\"))".dependencies] +[target."cfg(target_family = \"unix\")"] +[target."cfg(target_family = \"unix\")".dependencies] users = "0.11.0" [target."cfg(any(target_os = \"windows\", target_os = \"macos\"))"] diff --git a/src/config/mod.rs b/src/config/mod.rs index ea57dc0..06bcb44 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -225,7 +225,7 @@ mod tests { PathBuf::from(cfg.user_interface.text_editor.file_name().unwrap()), // NOTE: since edit 0.1.3 real path is used PathBuf::from("vim.EXE") ); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( PathBuf::from(cfg.user_interface.text_editor.file_name().unwrap()), // NOTE: since edit 0.1.3 real path is used PathBuf::from("vim") diff --git a/src/filetransfer/ftp_transfer.rs b/src/filetransfer/ftp_transfer.rs index 3829579..9cb6199 100644 --- a/src/filetransfer/ftp_transfer.rs +++ b/src/filetransfer/ftp_transfer.rs @@ -73,7 +73,7 @@ impl FtpFileTransfer { PathBuf::from(path_slash::PathExt::to_slash_lossy(p).as_str()) } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn resolve(p: &Path) -> PathBuf { p.to_path_buf() } diff --git a/src/filetransfer/scp_transfer.rs b/src/filetransfer/scp_transfer.rs index 24d64f9..34907a0 100644 --- a/src/filetransfer/scp_transfer.rs +++ b/src/filetransfer/scp_transfer.rs @@ -77,7 +77,7 @@ impl ScpFileTransfer { PathBuf::from(path_slash::PathExt::to_slash_lossy(p).as_str()) } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn resolve(p: &Path) -> PathBuf { p.to_path_buf() } diff --git a/src/fs/explorer/formatter.rs b/src/fs/explorer/formatter.rs index 4eed65b..96bdbba 100644 --- a/src/fs/explorer/formatter.rs +++ b/src/fs/explorer/formatter.rs @@ -28,7 +28,7 @@ // Deps extern crate bytesize; extern crate regex; -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] extern crate users; // Locals use super::FsEntry; @@ -36,7 +36,7 @@ use crate::utils::fmt::{fmt_path_elide, fmt_pex, fmt_time}; // Ext use bytesize::ByteSize; use regex::Regex; -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] use users::{get_group_by_gid, get_user_by_uid}; // Types // FmtCallback: Formatter, fsentry: &FsEntry, cur_str, prefix, length, extra @@ -251,7 +251,7 @@ impl Formatter { _fmt_extra: Option<&String>, ) -> String { // Get username - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] let group: String = match fsentry.get_group() { Some(gid) => match get_group_by_gid(gid) { Some(user) => user.name().to_string_lossy().to_string(), @@ -431,7 +431,7 @@ impl Formatter { _fmt_extra: Option<&String>, ) -> String { // Get username - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] let username: String = match fsentry.get_user() { Some(uid) => match get_user_by_uid(uid) { Some(user) => user.name().to_string_lossy().to_string(), @@ -605,7 +605,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: Some((6, 4, 4)), // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( @@ -636,7 +636,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: Some((6, 4, 4)), // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( @@ -667,7 +667,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: None, // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( @@ -698,7 +698,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: None, // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( @@ -734,7 +734,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: Some((7, 5, 5)), // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( @@ -763,7 +763,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: None, // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( formatter.fmt(&entry), format!( diff --git a/src/fs/explorer/mod.rs b/src/fs/explorer/mod.rs index 694d995..320867b 100644 --- a/src/fs/explorer/mod.rs +++ b/src/fs/explorer/mod.rs @@ -595,7 +595,7 @@ mod tests { group: Some(0), // UNIX only unix_pex: Some((6, 4, 4)), // UNIX only }); - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!( explorer.fmt_file(&entry), format!( diff --git a/src/host/mod.rs b/src/host/mod.rs index 051ad9c..f832f6e 100644 --- a/src/host/mod.rs +++ b/src/host/mod.rs @@ -34,9 +34,9 @@ use std::time::SystemTime; use thiserror::Error; use wildmatch::WildMatch; // Metadata ext -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] use std::fs::set_permissions; -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] use std::os::unix::fs::{MetadataExt, PermissionsExt}; // Locals @@ -439,7 +439,7 @@ impl Localhost { /// ### stat /// /// Stat file and create a FsEntry - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] pub fn stat(&self, path: &Path) -> Result { info!("Stating file {}", path.display()); let path: PathBuf = self.to_abs_path(path); @@ -605,7 +605,7 @@ impl Localhost { /// ### chmod /// /// Change file mode to file, according to UNIX permissions - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] pub fn chmod(&self, path: &Path, pex: (u8, u8, u8)) -> Result<(), HostError> { let path: PathBuf = self.to_abs_path(path); // Get metadta @@ -790,7 +790,7 @@ impl Localhost { /// ### u32_to_mode /// /// Return string with format xxxxxx to tuple of permissions (user, group, others) - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn u32_to_mode(&self, mode: u32) -> (u8, u8, u8) { let user: u8 = ((mode >> 6) & 0x7) as u8; let group: u8 = ((mode >> 3) & 0x7) as u8; @@ -801,7 +801,7 @@ impl Localhost { /// mode_to_u32 /// /// Convert owner,group,others to u32 - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn mode_to_u32(&self, mode: (u8, u8, u8)) -> u32 { ((mode.0 as u32) << 6) + ((mode.1 as u32) << 3) + mode.2 as u32 } @@ -826,17 +826,17 @@ impl Localhost { mod tests { use super::*; - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] use crate::utils::test_helpers::{create_sample_file, make_fsentry}; use crate::utils::test_helpers::{make_dir_at, make_file_at}; use pretty_assertions::assert_eq; - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] use std::fs::File; - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] use std::io::Write; - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] use std::os::unix::fs::{symlink, PermissionsExt}; #[test] @@ -848,7 +848,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_new() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); assert_eq!(host.wrkdir, PathBuf::from("/dev")); @@ -884,14 +884,14 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_pwd() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); assert_eq!(host.pwd(), PathBuf::from("/dev")); } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_list_files() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); // Scan dir @@ -904,7 +904,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_change_dir() { let mut host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); let new_dir: PathBuf = PathBuf::from("/dev"); @@ -920,7 +920,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[should_panic] fn test_host_localhost_change_dir_failed() { let mut host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); @@ -929,7 +929,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_open_read() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); // Create temp file @@ -938,7 +938,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[should_panic] fn test_host_localhost_open_read_err_no_such_file() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); @@ -959,7 +959,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_open_write() { let host: Localhost = Localhost::new(PathBuf::from("/dev")).ok().unwrap(); // Create temp file @@ -978,7 +978,7 @@ mod tests { assert!(host.open_file_write(file.path()).is_err()); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_localhost_symlinks() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1026,7 +1026,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_mkdir() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); let mut host: Localhost = Localhost::new(PathBuf::from(tmpdir.path())).ok().unwrap(); @@ -1051,7 +1051,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_remove() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); // Create sample file @@ -1080,7 +1080,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] fn test_host_localhost_rename() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); // Create sample file @@ -1108,7 +1108,7 @@ mod tests { .is_err()); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_chmod() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1127,7 +1127,7 @@ mod tests { .is_err()); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_copy_file_absolute() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1157,7 +1157,7 @@ mod tests { .is_err()); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_copy_file_relative() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1179,7 +1179,7 @@ mod tests { assert_eq!(host.files.len(), 2); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_copy_directory_absolute() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1210,7 +1210,7 @@ mod tests { assert!(host.stat(test_file_path.as_path()).is_ok()); } - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] #[test] fn test_host_copy_directory_relative() { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); @@ -1245,7 +1245,7 @@ mod tests { let tmpdir: tempfile::TempDir = tempfile::TempDir::new().unwrap(); let host: Localhost = Localhost::new(PathBuf::from(tmpdir.path())).ok().unwrap(); // Execute - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] assert_eq!(host.exec("echo 5").ok().unwrap().as_str(), "5\n"); #[cfg(target_os = "windows")] assert_eq!(host.exec("echo 5").ok().unwrap().as_str(), "5\r\n"); diff --git a/src/system/bookmarks_client.rs b/src/system/bookmarks_client.rs index e1caea3..f17680f 100644 --- a/src/system/bookmarks_client.rs +++ b/src/system/bookmarks_client.rs @@ -92,7 +92,12 @@ impl BookmarksClient { } }; // Make a key storage (linux / unix) - #[cfg(any(target_os = "linux", target_family = "unix"))] + #[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "netbsd", + target_os = "netbsd" + ))] let (key_storage, service_id): (Box, &str) = { #[cfg(not(test))] let app_name: &str = "bookmarks"; @@ -446,7 +451,12 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "linux"))] + #[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "netbsd", + target_os = "netbsd" + ))] fn test_system_bookmarks_new_err() { assert!(BookmarksClient::new( Path::new("/tmp/oifoif/omar"), diff --git a/src/ui/activities/filetransfer/view.rs b/src/ui/activities/filetransfer/view.rs index 48e414d..a6aa63f 100644 --- a/src/ui/activities/filetransfer/view.rs +++ b/src/ui/activities/filetransfer/view.rs @@ -28,7 +28,7 @@ // Deps extern crate bytesize; extern crate hostname; -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] extern crate users; // locals use super::{browser::FileExplorerTab, Context, FileTransferActivity}; @@ -59,7 +59,7 @@ use tuirealm::tui::{ style::Color, widgets::{BorderType, Borders, Clear}, }; -#[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] +#[cfg(target_family = "unix")] use users::{get_group_by_gid, get_user_by_uid}; impl FileTransferActivity { @@ -813,7 +813,7 @@ impl FileTransferActivity { .build(), ); // User - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] let username: String = match file.get_user() { Some(uid) => match get_user_by_uid(uid) { Some(user) => user.name().to_string_lossy().to_string(), @@ -824,7 +824,7 @@ impl FileTransferActivity { #[cfg(target_os = "windows")] let username: String = format!("{}", file.get_user().unwrap_or(0)); // Group - #[cfg(any(target_family = "unix", target_os = "macos", target_os = "linux"))] + #[cfg(target_family = "unix")] let group: String = match file.get_group() { Some(gid) => match get_group_by_gid(gid) { Some(group) => group.name().to_string_lossy().to_string(), diff --git a/src/utils/fmt.rs b/src/utils/fmt.rs index 37ed892..1957ab1 100644 --- a/src/utils/fmt.rs +++ b/src/utils/fmt.rs @@ -216,7 +216,7 @@ mod tests { } #[test] - #[cfg(any(target_family = "unix", target_os = "linux", target_os = "macos"))] + #[cfg(target_family = "unix")] fn test_utils_fmt_path_elide() { let p: &Path = &Path::new("/develop/pippo"); // Under max size