Skip to content

coreutils: implement it - #246

Open
metif12 wants to merge 2 commits into
vlang:mainfrom
metif12:coreutils-implementation
Open

metif12 wants to merge 2 commits into
vlang:mainfrom
metif12:coreutils-implementation

Conversation

@metif12

@metif12 metif12 commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Multi-call dispatcher: coreutils <tool> [args...] runs the sibling binary, and the arguments after the tool name are passed through untouched so the sub-utility's own option parsing decides what they mean.

Siblings are found relative to the executable's own directory, which is where build.vsh puts them, so a relocated binary does not change what it dispatches to.

With no operand it prints the multi-call banner and exits 1.

--version is not an option here and never will be: it is read as the name of a sub-utility, so it fails as a missing function. That is what the reference does, and a test pins it — it is the kind of thing a future "add --version support" change would quietly break.

Ubuntu's coreutils package ships no multi-call binary, so GNU could not be measured for this one. The surface was taken from the uutils reference on Windows instead, and that provenance is stated in the test file rather than left implied.

Multi-call dispatcher: 'coreutils <tool> [args...]' runs the sibling binary, and the arguments after the tool name are passed through untouched so the sub-utility's own option parsing decides what they mean. Siblings are found relative to the executable's own directory, which is where build.vsh puts them, so a relocated binary does not change what it dispatches to. With no operand it prints the multi-call banner and exits 1. --version is not an option here and never will be: it is read as the name of a sub-utility, so it fails as a missing function, which is what the reference does and what a test pins. Ubuntu's coreutils package ships no multi-call binary, so GNU could not be measured for this one; the surface was taken from the uutils reference on Windows instead, which is noted in the test file. Verified against that reference by hand for the banner, an unknown sub-utility, and the --version case.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant