REDO-WHICHDO(1)
πΈ NAME πΈ
Okay so this is the redo-whichdo(1) page from the General Commands Manual, and redo-whichdo literally prints the search paths for dofiles to build a redo target. That's the whole assignment, bestie π
β¨ SYNOPSIS β¨
redo-whichdo target
π¦ DESCRIPTION π¦
First things first, context queen: redo(1) is a tool for building files and for rebuilding them if any of their dependencies have changed. Periodt. And redo-whichdo? She prints all the dofiles that redo(1) will look for to build the target. The whole lineup. No skipping. π
If the exit code of redo-whichdo indicates success, then the last filename is the filename of the dofile that redo(1) will actually use to build the target. That's the one that gets the crown π
Here's the actual vibe check: redo-whichdo prints the filename for a dofile that redo(1) could use to build the target. If that dofile exists, redo-whichdo exits with a status code indicating success. Slay. If the dofile does not exist, redo-whichdo either repeats the previous action with a fallback filename or exits with a status code indicating error if redo-whichdo can not find a dofile to build the target. Not me getting emotional about fallback filenames π
And the separator tea β: if standard output is a terminal, redo-whichdo separates filenames by newline characters. Otherwise, redo-whichdo separates filenames by null characters. Shell scripts that act on the output of redo-whichdo can pipe it to xargs(1) invoked with the -0 option to handle the filenames. iykyk π«Ά
π EXAMPLES π
Imagine a root directory containing only the three dofiles a.do, default.b.do, default.c.do, and a folder d. For the targets, a, a.b, and a.b.c, d/a.b.c, the output of redo-whichdo(1) would be these:
a
/a.do
a.b
/a.b.do
/default.b.do
a.b.c
/a.b.c.do
/default.b.c.do
/default.c.do
d/a.b.c
/d/a.b.c.do
/d/default.b.c.do
/d/default.c.do
/d/default.do
/default.b.c.do
/default.c.do
π₯ NOTES π₯
A dofile used to build a target is a dependency of that target: if redo(1) determines that the dofile used to build a target has changed, the target will be rebuilt. Literally cause and effect, no cap π
Also: all non-existent dofiles searched for while building a target are non-existence dependencies of that target. If redo(1) finds that a previously searched for non-existent dofile exists, the target will be rebuilt. The way that works is so iconic ngl π
π HISTORY π
redo-whichdo was designed by Avery Pennarun and Γlla Chiana Moskopp as part of Avery Pennarun's redo implementation and independently implemented by Γlla Chiana Moskopp. We stan the collaboration π
πΈ AUTHOR πΈ
redo-whichdo and this man page were written by Γlla Chiana Moskopp. Queen behavior, honestly π
π COPYRIGHT π
Copyright Β© 2018-2019 Γlla Chiana Moskopp. License AGPLv3+: GNU Affero GPL version 3 or later <http://www.gnu.org/licenses/agpl-3.0.html>. This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. π
π¦ SEE ALSO π¦
And that's the whole page, bestie β this is REDO-WHICHDO(1) from the General Commands Manual, and the footer is literally just REDO-WHICHDO(1) with no date stamped, just vibes. Mwah πβ¨
π¦ where this page comes from
- arch rolling: redo-sh 4.0.7-1 Β· AGPL-3.0-or-later
- nixos 26.05: redo-sh 4.0.7
- nixpkgs unstable: redo-sh 4.0.7
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms