uutils / uutils/coreutils

Allow repeated flags much more often

Open
#5,998 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
24.1k
Forks
2k
Avg merge
1d 5h
Merged PRs (30d)
365

Description

If seems that there are many cases where we define self-conflicts, but GNU accepts repeated arguments. This is especially unnecessary for boolean flags. Let's fix that! This issue tracks progress for all utils.

  • chgrp: at least -v is broken
  • chmod: not considered yet
  • chown: not considered yet
  • chroot: not considered yet
  • comm: at least -1 is broken
  • cp: at least -a is handled correctly
  • csplit: at least -k is broken
  • date: at least --resolution is broken: #6143 , rest is fixed by #6142
  • du: at least -s is broken
  • echo: at least -n is broken
  • fmt: at least -c is broken, fixed by #6355
  • fold: at least -b is broken
  • id: at least -u is broken
  • install: at least -b is broken
  • join: at least -z is broken
  • kill: at least -l is broken
  • ln: not considered yet
  • logname: not considered yet
  • ls: not considered yet
  • mkdir: not considered yet
  • mkfifo: not considered yet
  • mknod: not considered yet
  • mktemp: not considered yet
  • more: not considered yet
  • mv: not considered yet
  • nice: not considered yet
  • nl: not considered yet
  • nohup: not considered yet
  • nproc: not considered yet
  • numfmt: not considered yet
  • od: not considered yet
  • paste: not considered yet
  • pathchk: not considered yet
  • pinky: not considered yet
  • pr: not considered yet
  • printenv: not considered yet
  • printf: not considered yet
  • ptx: not considered yet
  • pwd: not considered yet
  • readlink: not considered yet
  • realpath: not considered yet
  • rm: not considered yet
  • rmdir: not considered yet
  • runcon: not considered yet
  • seq: not considered yet
  • shred: not considered yet
  • sleep: not considered yet
  • sort: at least --sort=month --sort=numeric is broken
  • split: not considered yet
  • stat: not considered yet
  • stdbuf: not considered yet
  • stty: not considered yet
  • sum: not considered yet
  • sync: not considered yet
  • tac: not considered yet
  • tail: not considered yet
  • tee: not considered yet
  • test: not considered yet
  • timeout: not considered yet
  • touch: not considered yet
  • truncate: not considered yet
  • tsort: not considered yet
  • tty: not considered yet
  • uname: not considered yet
  • unexpand: not considered yet
  • uniq: not considered yet
  • unlink: not considered yet
  • uptime: not considered yet
  • users: not considered yet
  • vdir: not considered yet
  • wc: not considered yet
  • who: not considered yet
Not a problem (solved / not affected / works already)
  • arch: no repeatable options
  • base32: fully handled, see #6007
  • base64: fully handled, see #6007
  • basename: fully handled, see #6018
  • basenc: fully handled, see #6007
  • cat: at least -u is broken, see #6034
  • chcon: at least -v is broken, see #6039
  • cksum: at least --base64 is broken, see #6041
  • cut: works already
  • dd: Seems to already work, not gonna touch it.
  • df: works already
  • dir: just defers to ls
  • dircolors: at least -p is broken, see #6150
  • dirname: at least -z is broken, see #6151
  • env: at least -i is broken, fixed by #6288
  • expand: works already
  • expr: works completely differently
  • factor: already works
  • false: has no flags/args
  • groups: has no flags/args
  • hashsum: not a GNU tool
  • head: works already
  • hostid: has no flags/args
  • hostname: works, BUT INCOMPLETE AND FRAGILE
  • link: has no flags/args
  • shuf: fully handled, see #5978 and #5989
  • tr: fully handled, see #6006
  • true: has no flags/args
  • whoami: no repeatable options
  • yes: no repeatable options

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin with the unchecked utility entries in the issue and compare their repeated-flag behavior with GNU, starting with the explicitly broken flags. Treat each utility as complete when repeated flags no longer conflict where GNU accepts them, then update the checklist with the relevant result or linked work.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.