about summary refs log tree commit diff
path: root/man/man1/redo-whichdo.1
diff options
context:
space:
mode:
Diffstat (limited to 'man/man1/redo-whichdo.1')
-rw-r--r--man/man1/redo-whichdo.1127
1 files changed, 127 insertions, 0 deletions
diff --git a/man/man1/redo-whichdo.1 b/man/man1/redo-whichdo.1
new file mode 100644
index 0000000..89b135b
--- /dev/null
+++ b/man/man1/redo-whichdo.1
@@ -0,0 +1,127 @@
+.de URL
+\\$2 \(laURL: \\$1 \(ra\\$3
+..
+.if \n[.g] .mso www.tmac
+.TH REDO-WHICHDO 1
+.SH NAME
+redo-whichdo \- print search paths for dofiles to build a
+.I redo
+target
+.SH SYNOPSIS
+.B redo-whichdo
+.I target
+.SH DESCRIPTION
+.I redo(1)
+is a tool for building files and for rebuilding them if any of their dependencies have changed.
+.I redo-whichdo
+prints all dofiles that
+.I redo(1)
+will look for to build the target.
+If the exit code of
+.I redo-whichdo
+indicates success, the last filename is the filename of the dofile that
+.I redo(1)
+will actually use to build the target.
+.PP
+.I redo-whichdo
+prints the filename for a dofile that
+.I redo(1)
+could use to build the target.
+If the dofile exists,
+.I redo-whichdo
+exits with a status code indicating success.
+If the dofile does not exist,
+.I redo-whichdo
+either repeats the previous action with a fallback filename or exits with a status code indicating error if
+.I redo-whichdo
+can not find a dofile to build the target.
+.PP
+If standard output is a terminal,
+.I redo-whichdo
+separates filenames by newline characters. Otherwise,
+.I redo-whichdo
+separates filenames by null characters.
+Shell scripts that act on the output of
+.I redo-whichdo
+can pipe it to
+.I xargs(1)
+invoked with the
+.B -0
+option to handle the filenames.
+.SH EXAMPLES
+.PP
+Consider a root directory containing only the three dofiles
+.IR a.do ,
+.IR default.b.do ,
+.IR default.c.do ,
+and a folder
+.IR d .
+For the targets,
+.IR a ,
+.IR a.b ,
+and
+.IR a.b.c ,
+.IR d/a.b.c ,
+the output of
+.I redo-whichdo(1)
+would be these:
+.TP
+.I a
+.br
+/a.do
+.TP
+.I a.b
+.br
+/a.b.do
+.br
+/default.b.do
+.TP
+.I a.b.c
+.br
+/a.b.c.do
+.br
+/default.b.c.do
+.br
+/default.c.do
+.TP
+.I d/a.b.c
+.br
+/d/a.b.c.do
+.br
+/d/default.b.c.do
+.br
+/d/default.c.do
+.br
+/d/default.do
+.br
+/default.b.c.do
+.br
+/default.c.do
+.SH NOTES
+.PP
+A dofile used to build a target is a dependency of that target:
+If
+.I redo(1)
+determines that the dofile used to build a target has changed, the target will be rebuilt.
+.PP
+All non-existent dofiles searched for while building a target are non-existence dependencies of that target:
+If
+.I redo(1)
+finds that a previously searched for non-existent dofile exists, the target will be rebuilt.
+.SH HISTORY
+.I redo-whichdo
+was designed by Avery Pennarun and Nils Dagsson Moskopp as part of Avery Pennarun's
+.I redo
+implementation and independently implemented by Nils Dagsson Moskopp.
+.SH AUTHOR
+.I redo-whichdo
+and this man page were written by Nils Dagsson Moskopp.
+.SH COPYRIGHT
+Copyright © 2018-2019 Nils Dagsson 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.
+.SH SEE ALSO
+.IR redo(1) ,
+.IR redo-ifchange(1) ,
+.IR redo-ifcreate(1) ,
+.IR redo-targets(1)