flush-cache: run it as a separate program, not using 'source'

That way it doesn't clutter up 'redo -x' as much.
This commit is contained in:
Avery Pennarun 2010-12-08 20:16:26 -08:00
commit 8dad223225
8 changed files with 15 additions and 13 deletions

View file

@ -2,15 +2,15 @@ rm -f chdir1
redo chdir2 redo chdir2
redo chdir3 redo chdir3
. ./flush-cache.sh ./flush-cache.sh
redo-ifchange chdir3 redo-ifchange chdir3
rm -f chdir1 rm -f chdir1
. ./flush-cache.sh ./flush-cache.sh
redo-ifchange chdir3 redo-ifchange chdir3
[ -e chdir1 ] || exit 77 [ -e chdir1 ] || exit 77
rm -f chdir1 rm -f chdir1
. ./flush-cache.sh ./flush-cache.sh
redo-ifchange chdir3 redo-ifchange chdir3
[ -e chdir1 ] || exit 78 [ -e chdir1 ] || exit 78

View file

@ -1,10 +1,10 @@
rm -f *.out *.log rm -f *.out *.log
. ../../flush-cache.sh ../../flush-cache.sh
redo-ifchange 1.out 2.out redo-ifchange 1.out 2.out
[ "$(cat 1.log | wc -l)" = 1 ] || exit 55 [ "$(cat 1.log | wc -l)" = 1 ] || exit 55
[ "$(cat 2.log | wc -l)" = 1 ] || exit 56 [ "$(cat 2.log | wc -l)" = 1 ] || exit 56
. ../../flush-cache.sh ../../flush-cache.sh
touch 1.in touch 1.in
redo-ifchange 1.out 2.out redo-ifchange 1.out 2.out
[ "$(cat 1.log | wc -l)" = 2 ] || exit 57 [ "$(cat 1.log | wc -l)" = 2 ] || exit 57

View file

@ -1,11 +1,11 @@
rm -f log dir1/log dir1/stinky rm -f log dir1/log dir1/stinky
touch t1.do touch t1.do
. ../../flush-cache.sh ../../flush-cache.sh
redo t1 redo t1
touch t1.do touch t1.do
. ../../flush-cache.sh ../../flush-cache.sh
redo t1 redo t1
. ../../flush-cache.sh ../../flush-cache.sh
redo-ifchange t1 redo-ifchange t1
C1="$(wc -l <dir1/log)" C1="$(wc -l <dir1/log)"
C2="$(wc -l <log)" C2="$(wc -l <log)"

View file

@ -3,7 +3,7 @@ rm -f static.log
redo static1 static2 redo static1 static2
touch static.in touch static.in
. ../flush-cache.sh ../flush-cache.sh
redo-ifchange static1 static2 redo-ifchange static1 static2
COUNT=$(wc -l <static.log) COUNT=$(wc -l <static.log)

View file

@ -1,19 +1,19 @@
rm -f genfile2 genfile2.do genfile.log rm -f genfile2 genfile2.do genfile.log
echo echo hello >genfile2.do echo echo hello >genfile2.do
. ../flush-cache.sh ../flush-cache.sh
redo genfile1 redo genfile1
# this will cause a rebuild: # this will cause a rebuild:
# genfile1 depends on genfile2 depends on genfile2.do # genfile1 depends on genfile2 depends on genfile2.do
rm -f genfile2.do rm -f genfile2.do
. ../flush-cache.sh ../flush-cache.sh
redo-ifchange genfile1 redo-ifchange genfile1
# but genfile2.do was gone last time, so genfile2 no longer depends on it. # but genfile2.do was gone last time, so genfile2 no longer depends on it.
# thus, it can be considered up-to-date. Prior versions of redo had a bug # thus, it can be considered up-to-date. Prior versions of redo had a bug
# where the dependency on genfile2.do was never dropped. # where the dependency on genfile2.do was never dropped.
. ../flush-cache.sh ../flush-cache.sh
redo-ifchange genfile1 redo-ifchange genfile1
COUNT=$(wc -l <genfile.log) COUNT=$(wc -l <genfile.log)

View file

@ -6,6 +6,7 @@ if [ -e t1a ]; then
else else
BEFORE= BEFORE=
fi fi
../flush-cache.sh
redo-ifchange t1a # it definitely had to rebuild because t1dep changed redo-ifchange t1a # it definitely had to rebuild because t1dep changed
AFTER="$(cat t1a)" AFTER="$(cat t1a)"
if [ "$BEFORE" = "$AFTER" ]; then if [ "$BEFORE" = "$AFTER" ]; then

1
t/flush-cache.sh Normal file → Executable file
View file

@ -1,3 +1,4 @@
#!/bin/sh
#echo "Flushing redo cache..." >&2 #echo "Flushing redo cache..." >&2
find "$REDO_BASE/.redo" -name 'built^*' -o -name 'mark^*' | find "$REDO_BASE/.redo" -name 'built^*' -o -name 'mark^*' |
xargs rm -f >&2 xargs rm -f >&2

View file

@ -1,7 +1,7 @@
rm -f makedir.log rm -f makedir.log
redo makedir redo makedir
touch makedir/outfile touch makedir/outfile
. ./flush-cache.sh ./flush-cache.sh
redo-ifchange makedir redo-ifchange makedir
COUNT=$(wc -l <makedir.log) COUNT=$(wc -l <makedir.log)
[ "$COUNT" = 1 ] || exit 99 [ "$COUNT" = 1 ] || exit 99