uutils / coreutils

Cross-platform Rust rewrite of the GNU coreutils
https://uutils.github.io/
MIT License
17.61k stars 1.27k forks source link

ls: Compatibility Tracking Issue #1872

Open tertsdiepraam opened 3 years ago

tertsdiepraam commented 3 years ago

I've made an overview of all options that need to be added and defaults that need to be changed in ls to reach full compatibility with GNU ls. I hope this might help people out who want to contribute, without adding to many issues to the issue list.

The items marked with :one: are the ones I think make Good First Issues.

sylvestre commented 3 years ago

Bravo for this work!

Don't hesitate to create new issues as "good first bugs"!

LevitatingBusinessMan commented 3 years ago

@tertsdiepraam That's another few points to tick off

tertsdiepraam commented 3 years ago

@LevitatingBusinessMan Thanks for reminding me!

LevitatingBusinessMan commented 3 years ago

@tertsdiepraam Don't forget the posix time-styles. And the TIME_STYLE environemntal variable works already.

siebenHeaven commented 3 years ago

Nice list :) - I was implementing 'total size' related feature which I noticed to be missing from output. I think it aligns with the last item in the list?

tertsdiepraam commented 3 years ago

Yes, that's what that was supposed to be! I rewrote it a bit to make it clearer (hopefully). Looking forward to the PR!

siebenHeaven commented 3 years ago

Thanks for confirming - it was already clear as is, I just was double confirming.

LevitatingBusinessMan commented 3 years ago

@sylvestre did you close this by mistake?

sylvestre commented 3 years ago

nah, it was closed when the PR has been merged!

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

LevitatingBusinessMan commented 1 year ago

Set default to -q if the output is a terminal.

The IsTerminal trait was stabilized in 1.70.0 recently. So this feature should be trivial to implement once we move the minimum rust version up.

tertsdiepraam commented 1 year ago

Indeed! We're also using the is_terminal crate in other utils, which has the same interface, I think. So this should be pretty easy to do.

LevitatingBusinessMan commented 1 year ago

https://github.com/uutils/coreutils/blob/main/src/uu/ls/src/ls.rs#L830-L837

Judging by this code, this is already done. Though I am not sure if it is correctly tested.

tertsdiepraam commented 1 year ago

We probably can't really test it. I'll mark it as done in the list. Thanks!

keys-i commented 5 months ago

was this one completed?

sylvestre commented 3 months ago

nope, we still have some options not passing compared to GNU