From 90fae903cea05f9643c26e67c1d69afc4455ff07 Mon Sep 17 00:00:00 2001 From: Luccas Mateus Date: Wed, 31 Mar 2021 14:10:40 -0300 Subject: [PATCH] Fixes error when trying to delete a FIFO (#3235) * Output error when ls into a file without permission * added test to check fails when ls into prohibited dir * fix lint * trigger wasm build * be able to remove fifos * Update filesystem_shell.rs * I thought windows had fifos * fixed unix and windows conditional compilation Co-authored-by: Jonathan Turner --- crates/nu-engine/src/filesystem/filesystem_shell.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/nu-engine/src/filesystem/filesystem_shell.rs b/crates/nu-engine/src/filesystem/filesystem_shell.rs index 0192503a79..995c4bfdff 100644 --- a/crates/nu-engine/src/filesystem/filesystem_shell.rs +++ b/crates/nu-engine/src/filesystem/filesystem_shell.rs @@ -671,13 +671,19 @@ impl Shell for FilesystemShell { if let Ok(metadata) = f.symlink_metadata() { #[cfg(unix)] let is_socket = metadata.file_type().is_socket(); + #[cfg(unix)] + let is_fifo = metadata.file_type().is_fifo(); + #[cfg(not(unix))] let is_socket = false; + #[cfg(not(unix))] + let is_fifo = false; if metadata.is_file() || metadata.file_type().is_symlink() || recursive.item || is_socket + || is_fifo || is_empty() { let result; @@ -699,7 +705,7 @@ impl Shell for FilesystemShell { } #[cfg(not(feature = "trash-support"))] { - result = if metadata.is_file() || is_socket { + result = if metadata.is_file() || is_socket || is_fifo { std::fs::remove_file(&f) } else { std::fs::remove_dir_all(&f)