fixed commands not getting hashed through symlinks
This commit is contained in:
15
src/state.rs
15
src/state.rs
@@ -776,11 +776,10 @@ impl MetaTab {
|
|||||||
for path in paths {
|
for path in paths {
|
||||||
if let Ok(entries) = path.read_dir() {
|
if let Ok(entries) = path.read_dir() {
|
||||||
for entry in entries.flatten() {
|
for entry in entries.flatten() {
|
||||||
let Ok(meta) = entry.metadata() else { continue };
|
let Ok(meta) = std::fs::metadata(entry.path()) else { continue };
|
||||||
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
||||||
|
|
||||||
if let Ok(file_type) = entry.file_type()
|
if meta.is_file() && is_exec
|
||||||
&& file_type.is_file() && is_exec
|
|
||||||
&& let Some(name) = entry.file_name().to_str() {
|
&& let Some(name) = entry.file_name().to_str() {
|
||||||
self.path_cache.insert(name.to_string());
|
self.path_cache.insert(name.to_string());
|
||||||
}
|
}
|
||||||
@@ -789,11 +788,10 @@ impl MetaTab {
|
|||||||
}
|
}
|
||||||
if let Ok(entries) = Path::new(&cwd).read_dir() {
|
if let Ok(entries) = Path::new(&cwd).read_dir() {
|
||||||
for entry in entries.flatten() {
|
for entry in entries.flatten() {
|
||||||
let Ok(meta) = entry.metadata() else { continue };
|
let Ok(meta) = std::fs::metadata(entry.path()) else { continue };
|
||||||
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
||||||
|
|
||||||
if let Ok(file_type) = entry.file_type()
|
if meta.is_file() && is_exec
|
||||||
&& file_type.is_file() && is_exec
|
|
||||||
&& let Some(name) = entry.file_name().to_str() {
|
&& let Some(name) = entry.file_name().to_str() {
|
||||||
self.path_cache.insert(format!("./{}", name));
|
self.path_cache.insert(format!("./{}", name));
|
||||||
}
|
}
|
||||||
@@ -826,11 +824,10 @@ impl MetaTab {
|
|||||||
|
|
||||||
if let Ok(entries) = Path::new(&cwd).read_dir() {
|
if let Ok(entries) = Path::new(&cwd).read_dir() {
|
||||||
for entry in entries.flatten() {
|
for entry in entries.flatten() {
|
||||||
let Ok(meta) = entry.metadata() else { continue };
|
let Ok(meta) = std::fs::metadata(entry.path()) else { continue };
|
||||||
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
let is_exec = meta.permissions().mode() & 0o111 != 0;
|
||||||
|
|
||||||
if let Ok(file_type) = entry.file_type()
|
if meta.is_file() && is_exec
|
||||||
&& file_type.is_file() && is_exec
|
|
||||||
&& let Some(name) = entry.file_name().to_str() {
|
&& let Some(name) = entry.file_name().to_str() {
|
||||||
self.cwd_cache.insert(name.to_string());
|
self.cwd_cache.insert(name.to_string());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user