Symlinks now show the target they are pointing to
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
# lsplus
|
||||
A better ls for linux systems, writter in rust
|
||||
A better ls for linux systems, written in rust
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
use std::{fmt::Display, fs, os::unix::prelude::FileTypeExt, path::Path, time::SystemTime};
|
||||
use std::{
|
||||
fmt::Display,
|
||||
fs::{self, read_link},
|
||||
os::unix::prelude::FileTypeExt,
|
||||
path::Path,
|
||||
time::SystemTime,
|
||||
};
|
||||
|
||||
use crate::utils::get_icon_file_type;
|
||||
|
||||
@@ -44,15 +50,22 @@ impl Element {
|
||||
t = TypeOfFile::File;
|
||||
}
|
||||
|
||||
let mut name = path_built
|
||||
.file_name()
|
||||
.unwrap()
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
|
||||
if symlink_metadata.is_symlink() {
|
||||
name.push_str(" -> ");
|
||||
name.push_str(read_link(path_built).unwrap().to_str().unwrap())
|
||||
}
|
||||
|
||||
Self {
|
||||
path: path_str.to_string(),
|
||||
file_type: t,
|
||||
name: path_built
|
||||
.file_name()
|
||||
.unwrap()
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string(),
|
||||
name,
|
||||
perms: metadata.permissions(),
|
||||
size: metadata.len(),
|
||||
creation: metadata.created().unwrap(),
|
||||
|
||||
@@ -5,7 +5,7 @@ pub fn list(mut elements: Vec<Element>) {
|
||||
elements.sort_unstable_by_key(|a: &Element| a.get_name());
|
||||
let width = term_size::dimensions().unwrap().0;
|
||||
// ╭──────────────╼ File name ╾──────────────┬─╼ Size ╾─┬──╼ Creation ╾──╮
|
||||
// │ │ │ │
|
||||
// │ some_example_file │ 420.69 G │ 01-01-70 00:00 │
|
||||
// ╰─────────────────────────────────────────┴──────────┴────────────────╯
|
||||
let mut name_max_len = 0;
|
||||
for e in &elements {
|
||||
|
||||
Reference in New Issue
Block a user