REDO-STAMP(1) General Commands Manual REDO-STAMP(1)

redo-stamp - rebuild target files depending on data given on standard input

[command] | redo-stamp

redo(1) is a tool for building files and for rebuilding them if any of their dependencies have changed. redo-stamp, when invoked from a dofile, adds a dependency of the current redo(1) target on the data given on standard input. If the data given on standard input to redo-stamp has not changed since the last build, the current redo(1) target is not rebuilt and marked as up to date. To ensure that redo-stamp checks the current target's validity, one can use redo-always(1) to mark the current target as always out of date.

Consider the following two files all.do and b.do:


#!/bin/sh
redo-ifchange b

#!/bin/sh
redo-always
echo 'input a line of text:' >&2
line | redo-stamp
date +%s

Invoking redo(1) in a directory with these files will build a file named b containing a timestamp. The next time redo(1) is invoked, it will only rebuild b if the output of line(1) changed since the last build. This can be verified by invoking redo(1) repeatedly and examining the timestamp b after each invocation, then changing the input to line(1), invoking redo(1) again and examining the timestamp again.

redo-stamp was designed by Avery Pennarun and implemented by Nils Dagsson Moskopp.

redo-stamp and this man page were written by Nils Dagsson Moskopp.

Copyright © 2014-2017 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 create and redistribute it. There is NO WARRANTY, to the extent permitted by law.

redo(1), redo-always(1), redo-dot(1), redo-ifchange(1), redo-ifcreate(1), redo-ood(1), redo-sources(1), redo-targets(1)

None so far.