diff --git a/redo.py b/redo.py index 5f1a482..c232244 100755 --- a/redo.py +++ b/redo.py @@ -22,7 +22,7 @@ if opt.verbose: if opt.shuffle: os.environ['REDO_SHUFFLE'] = '1' -is_root = not os.environ.get('REDO_BASE', '') +is_root = not os.environ.get('REDO', '') if is_root: # toplevel call to redo diff --git a/t/all.do b/t/all.do index 41379ff..db9c7b6 100644 --- a/t/all.do +++ b/t/all.do @@ -1,2 +1,3 @@ -redo-ifchange hello yellow bellow c d example/all curse/all +redo-ifchange hello yellow bellow c d example/all curse/all deps/all + diff --git a/t/clean.do b/t/clean.do index 1fde6f4..75b7dd2 100644 --- a/t/clean.do +++ b/t/clean.do @@ -1,3 +1,3 @@ -redo example/clean curse/clean +redo example/clean curse/clean deps/clean rm -f c c.c c.c.c c.c.c.b c.c.c.b.b d rm -f hello [by]ellow *.o *~ .*~ CC LD diff --git a/t/deps/.gitignore b/t/deps/.gitignore new file mode 100644 index 0000000..1c802f3 --- /dev/null +++ b/t/deps/.gitignore @@ -0,0 +1 @@ +t1a diff --git a/t/deps/all.do b/t/deps/all.do new file mode 100644 index 0000000..3f5418f --- /dev/null +++ b/t/deps/all.do @@ -0,0 +1 @@ +redo test1 diff --git a/t/deps/clean.do b/t/deps/clean.do new file mode 100644 index 0000000..a0946c9 --- /dev/null +++ b/t/deps/clean.do @@ -0,0 +1 @@ +rm -f *~ .*~ t1a diff --git a/t/deps/t1a.do b/t/deps/t1a.do new file mode 100644 index 0000000..679cee5 --- /dev/null +++ b/t/deps/t1a.do @@ -0,0 +1,2 @@ +redo-ifchange t1dep +echo $$ diff --git a/t/deps/t1dep.do b/t/deps/t1dep.do new file mode 100644 index 0000000..be830bd --- /dev/null +++ b/t/deps/t1dep.do @@ -0,0 +1 @@ +# nothing to do diff --git a/t/deps/test1.do b/t/deps/test1.do new file mode 100644 index 0000000..c09feb4 --- /dev/null +++ b/t/deps/test1.do @@ -0,0 +1,14 @@ +# force-rebuild t1dep +redo t1dep + +if [ -e t1a ]; then + BEFORE="$(cat t1a)" +else + BEFORE= +fi +redo-ifchange t1a # it definitely had to rebuild because t1dep changed +AFTER="$(cat t1a)" +if [ "$BEFORE" == "$AFTER" ]; then + echo "t1a was not rebuilt!" >&2 + exit 43 +fi