REDO-STAMP(1)

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

SYNOPSIS
[command] | redo-stamp

DESCRIPTION
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.

EXAMPLES

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

all.do
    #!/bin/sh
    redo-ifchange b

b.do
    #!/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.

HISTORY
redo-stamp was designed by Avery Pennarun and implemented by Ælla Chiana Moskopp.

AUTHOR
redo-stamp and this man page were written by Ælla Chiana Moskopp.

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

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

BUGS
None so far.