REDO-ALWAYS(1)

NAME
redo-always - mark the current redo target as always needing to be rebuilt

SYNOPSIS
redo-always

DESCRIPTION
redo(1) is a tool for building files and for rebuilding them if any of their dependencies have changed. redo-always, when invoked from a dofile, adds a dependency on the current target that is impossible to satisfy. The target will always be rebuilt if given as an argument to redo-ifchange(1).

EXAMPLES

Consider the following three dofiles all.do, b.do and c.do:

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

b.do
    #!/bin/sh
    redo-ifchange c
    sleep 1
    date +%s

c.do
    #!/bin/sh
    redo-always
    date +%s

Invoking redo(1) in a directory with these three files will build a file named c containing a timestamp and a file named b containing a timestamp that is at least one second later. Both b and c will always be rebuilt when redo(1) is invoked, as the default target all depends on b which in turn depends on c which has an impossible to satisfy dependency.

HISTORY
redo-always was designed by Avery Pennarun as part of his redo implementation and implemented by Ælla Chiana Moskopp.

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

COPYRIGHT
Copyright © 2014-2016 Æ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
redo(1), redo-dot(1), redo-ifchange(1), redo-ifcreate(1), redo-ood(1), redo-sources(1), redo-stamp(1), redo-targets(1)

BUGS
redo-always may break if the target filename contains a tab or a newline.