diff --git a/builder.py b/builder.py index bb5cadc..5c8b4ea 100644 --- a/builder.py +++ b/builder.py @@ -76,7 +76,7 @@ class BuildJob: return self._after2(1) state.stamp(dofile) unlink(tmpname) - ffd = os.open(tmpname, os.O_CREAT|os.O_RDWR|os.O_EXCL) + ffd = os.open(tmpname, os.O_CREAT|os.O_RDWR|os.O_EXCL, 0666) close_on_exec(ffd, True) self.f = os.fdopen(ffd, 'w+') # this will run in the dofile's directory, so use only basenames here diff --git a/t/.gitignore b/t/.gitignore index 5d5e603..608d5f9 100644 --- a/t/.gitignore +++ b/t/.gitignore @@ -7,3 +7,4 @@ d test.args test2.args /passfail +mode1 diff --git a/t/clean.do b/t/clean.do index 890b88c..20f1ef3 100644 --- a/t/clean.do +++ b/t/clean.do @@ -1,4 +1,4 @@ redo example/clean curse/clean deps/clean "space dir/clean" -rm -f c c.c c.c.c c.c.c.b c.c.c.b.b d +rm -f c c.c c.c.c c.c.c.b c.c.c.b.b d mode1 rm -f hello [by]ellow *.o *~ .*~ CC LD passfail diff --git a/t/mode1.do b/t/mode1.do new file mode 100644 index 0000000..2f08be9 --- /dev/null +++ b/t/mode1.do @@ -0,0 +1 @@ +echo hello diff --git a/t/modetest.do b/t/modetest.do new file mode 100644 index 0000000..a436baf --- /dev/null +++ b/t/modetest.do @@ -0,0 +1,5 @@ +umask 0022 +redo mode1 +MODE="$(ls -l mode1 | cut -d' ' -f1)" +[ "$MODE" = "-rw-r--r--" ] || exit 78 + diff --git a/t/test.do b/t/test.do index ec45825..9b94af4 100644 --- a/t/test.do +++ b/t/test.do @@ -1,6 +1,4 @@ redo-ifchange all ./hello >&2 redo deltest deltest2 test.args test2.args passfailtest \ - curse/test deps/test "space dir/test" - - + curse/test deps/test "space dir/test" modetest