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

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

redo-always

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

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


#!/bin/sh
redo-ifchange b

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

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

redo-always was designed by Avery Pennarun as part of his redo implementation and implemented by Nils Dagsson Moskopp.

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

Copyright © 2014-2016 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.

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

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