Show files on the end of symlinks

This commit is contained in:
Ben S 2014-06-21 10:11:50 +01:00
parent 2adc9b8dc9
commit 5c0d2d07d0

19
file.rs
View File

@ -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
@ -105,6 +106,22 @@ impl<'a> File<'a> {
}
}
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.