mirror of
https://github.com/Llewellynvdm/exa.git
synced 2025-01-25 22:58:26 +00:00
Show files on the end of symlinks
This commit is contained in:
parent
2adc9b8dc9
commit
5c0d2d07d0
31
file.rs
31
file.rs
@ -17,11 +17,11 @@ use filetype::HasType;
|
|||||||
// the actual path.
|
// the actual path.
|
||||||
|
|
||||||
pub struct File<'a> {
|
pub struct File<'a> {
|
||||||
pub name: &'a str,
|
pub name: &'a str,
|
||||||
pub dir: &'a Dir<'a>,
|
pub dir: &'a Dir<'a>,
|
||||||
pub ext: Option<&'a str>,
|
pub ext: Option<&'a str>,
|
||||||
pub path: &'a Path,
|
pub path: &'a Path,
|
||||||
pub stat: io::FileStat,
|
pub stat: io::FileStat,
|
||||||
pub parts: Vec<SortPart>,
|
pub parts: Vec<SortPart>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,10 +88,11 @@ impl<'a> File<'a> {
|
|||||||
_ => vec![],
|
_ => vec![],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn display(&self, column: &Column) -> String {
|
pub fn display(&self, column: &Column) -> String {
|
||||||
match *column {
|
match *column {
|
||||||
Permissions => self.permissions_string(),
|
Permissions => self.permissions_string(),
|
||||||
FileName => self.file_colour().paint(self.name),
|
FileName => self.file_name(),
|
||||||
FileSize(use_iec) => self.file_size(use_iec),
|
FileSize(use_iec) => self.file_size(use_iec),
|
||||||
|
|
||||||
// Display the ID if the user/group doesn't exist, which
|
// Display the ID if the user/group doesn't exist, which
|
||||||
@ -104,7 +105,23 @@ impl<'a> File<'a> {
|
|||||||
Group => get_group_name(self.stat.unstable.gid as u32).unwrap_or(self.stat.unstable.gid.to_str()),
|
Group => get_group_name(self.stat.unstable.gid as u32).unwrap_or(self.stat.unstable.gid.to_str()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn file_name(&self) -> String {
|
||||||
|
let displayed_name = self.file_colour().paint(self.name);
|
||||||
|
if self.stat.kind == io::TypeSymlink {
|
||||||
|
match fs::readlink(self.path) {
|
||||||
|
Ok(path) => format!("{} => {}", displayed_name, path.display()),
|
||||||
|
Err(e) => {
|
||||||
|
println!("{}", e);
|
||||||
|
displayed_name
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
displayed_name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn file_size(&self, use_iec_prefixes: bool) -> String {
|
fn file_size(&self, use_iec_prefixes: bool) -> String {
|
||||||
// Don't report file sizes for directories. I've never looked
|
// Don't report file sizes for directories. I've never looked
|
||||||
// at one of those numbers and gained any information from it.
|
// at one of those numbers and gained any information from it.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user