Optimized code for fsentry

This commit is contained in:
ChristianVisintin
2020-12-12 16:32:21 +01:00
parent f73e43304e
commit 57e83a63dd
5 changed files with 10 additions and 40 deletions

View File

@@ -550,10 +550,7 @@ impl FileTransfer for ScpFileTransfer {
match self.is_connected() {
true => {
// Get path
let path: PathBuf = match file {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let path: PathBuf = file.get_abs_path();
let p: PathBuf = self.wrkdir.clone();
match self.perform_shell_cmd_with_path(
p.as_path(),
@@ -589,10 +586,7 @@ impl FileTransfer for ScpFileTransfer {
match self.is_connected() {
true => {
// Get path
let path: PathBuf = match file {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let path: PathBuf = file.get_abs_path();
let p: PathBuf = self.wrkdir.clone();
match self.perform_shell_cmd_with_path(
p.as_path(),

View File

@@ -461,10 +461,7 @@ impl FileTransfer for SftpFileTransfer {
// Resolve destination path
let abs_dst: PathBuf = self.get_abs_path(dst);
// Get abs path of entry
let abs_src: PathBuf = match file {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let abs_src: PathBuf = file.get_abs_path();
match sftp.rename(abs_src.as_path(), abs_dst.as_path(), None) {
Ok(_) => Ok(()),
Err(err) => Err(FileTransferError::new_ex(

View File

@@ -244,10 +244,7 @@ impl Localhost {
///
/// Rename file or directory to new name
pub fn rename(&mut self, entry: &FsEntry, dst_path: &Path) -> Result<(), HostError> {
let abs_path: PathBuf = match entry {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(f) => f.abs_path.clone(),
};
let abs_path: PathBuf = entry.get_abs_path();
match std::fs::rename(abs_path.as_path(), dst_path) {
Ok(_) => {
// Scan dir

View File

@@ -147,10 +147,7 @@ impl FileTransferActivity {
}
// Check if file entry exists
if let Some(entry) = self.local.files.get(self.local.index) {
let full_path: PathBuf = match entry {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let full_path: PathBuf = entry.get_abs_path();
// Rename file or directory and report status as popup
match self
.context
@@ -194,10 +191,7 @@ impl FileTransferActivity {
FileExplorerTab::Remote => {
// Check if file entry exists
if let Some(entry) = self.remote.files.get(self.remote.index) {
let full_path: PathBuf = match entry {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let full_path: PathBuf = entry.get_abs_path();
// Rename file or directory and report status as popup
let dst_path: PathBuf = PathBuf::from(input);
match self.client.rename(entry, dst_path.as_path()) {
@@ -247,10 +241,7 @@ impl FileTransferActivity {
FileExplorerTab::Local => {
// Check if file entry exists
if let Some(entry) = self.local.files.get(self.local.index) {
let full_path: PathBuf = match entry {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let full_path: PathBuf = entry.get_abs_path();
// Delete file or directory and report status as popup
match self.context.as_mut().unwrap().local.remove(entry) {
Ok(_) => {
@@ -283,10 +274,7 @@ impl FileTransferActivity {
FileExplorerTab::Remote => {
// Check if file entry exists
if let Some(entry) = self.remote.files.get(self.remote.index) {
let full_path: PathBuf = match entry {
FsEntry::Directory(dir) => dir.abs_path.clone(),
FsEntry::File(file) => file.abs_path.clone(),
};
let full_path: PathBuf = entry.get_abs_path();
// Delete file
match self.client.remove(entry) {
Ok(_) => {

View File

@@ -474,10 +474,7 @@ impl FileTransferActivity {
match &dir.symlink {
Some(symlink) => {
// Get symlink path
let symlink_path: &Path = match &**symlink {
FsEntry::Directory(s_dir) => s_dir.abs_path.as_path(),
FsEntry::File(s_file) => s_file.abs_path.as_path(),
};
let symlink_path: PathBuf = symlink.get_abs_path();
format!(
"{} => {}",
dir.abs_path.display(),
@@ -570,10 +567,7 @@ impl FileTransferActivity {
match &file.symlink {
Some(symlink) => {
// Get symlink path
let symlink_path: &Path = match &**symlink {
FsEntry::Directory(s_dir) => s_dir.abs_path.as_path(),
FsEntry::File(s_file) => s_file.abs_path.as_path(),
};
let symlink_path: PathBuf = symlink.get_abs_path();
format!(
"{} => {}",
file.abs_path.display(),