mirror of
https://github.com/veeso/termscp.git
synced 2025-12-07 09:36:00 -08:00
Optimized code for fsentry
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(_) => {
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user