summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtool/ifchange8
1 files changed, 8 insertions, 0 deletions
diff --git a/tool/ifchange b/tool/ifchange
index 177ce7340b..5ff8276b03 100755
--- a/tool/ifchange
+++ b/tool/ifchange
@@ -2,6 +2,7 @@
# usage: ifchange target temporary
timestamp=
+keepsuffix=
until [ "$0" = 0 ]; do
case "$1" in
--timestamp)
@@ -10,6 +11,12 @@ until [ "$0" = 0 ]; do
--timestamp=*)
timestamp=`expr \( "$1" : '[^=]*=\(.*\)' \)`
;;
+ --keep)
+ keepsuffix=.old
+ ;;
+ --keep=*)
+ keepsuffix=`expr \( "$1" : '[^=]*=\(.*\)' \)`
+ ;;
*)
break
;;
@@ -30,6 +37,7 @@ if cmp "$target" "$temp" >/dev/null 2>&1; then
rm -f "$temp"
else
echo "$target updated"
+ ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" }
mv -f "$temp" "$target"
fi