mirror of
https://github.com/Llewellynvdm/exa.git
synced 2025-01-11 16:34: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.
|
||||
|
||||
pub struct File<'a> {
|
||||
pub name: &'a str,
|
||||
pub dir: &'a Dir<'a>,
|
||||
pub ext: Option<&'a str>,
|
||||
pub path: &'a Path,
|
||||
pub stat: io::FileStat,
|
||||
pub name: &'a str,
|
||||
pub dir: &'a Dir<'a>,
|
||||
pub ext: Option<&'a str>,
|
||||
pub path: &'a Path,
|
||||
pub stat: io::FileStat,
|
||||
pub parts: Vec<SortPart>,
|
||||
}
|
||||
|
||||
@ -88,10 +88,11 @@ impl<'a> File<'a> {
|
||||
_ => vec![],
|
||||
}
|
||||
}
|
||||
|
||||
pub fn display(&self, column: &Column) -> String {
|
||||
match *column {
|
||||
Permissions => self.permissions_string(),
|
||||
FileName => self.file_colour().paint(self.name),
|
||||
FileName => self.file_name(),
|
||||
FileSize(use_iec) => self.file_size(use_iec),
|
||||
|
||||
// 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()),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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 {
|
||||
// Don't report file sizes for directories. I've never looked
|
||||
// at one of those numbers and gained any information from it.
|
||||
|
Loading…
Reference in New Issue
Block a user