Browse Source

MacOS: "-e filename/." returns true even for non-directories.

This has something to do with resource forks.  So use "-d filename/."
instead, which returns false if filename is not a directory.
pull/5/head
Avery Pennarun 10 years ago
parent
commit
c1a1f32445
5 changed files with 8 additions and 3 deletions
  1. +1
    -1
      builder.py
  2. +1
    -1
      contrib/bash_completion.d/redo
  3. +1
    -1
      minimal/do
  4. +2
    -0
      t/default.vartest.do
  5. +3
    -0
      t/vartest.do

+ 1
- 1
builder.py View File

@ -107,7 +107,7 @@ class BuildJob:
sf.set_checked()
sf.save()
return self._after2(0)
if (os.path.exists(t) and not os.path.exists(t + '/.')
if (os.path.exists(t) and not os.path.isdir(t + '/.')
and not sf.is_generated):
# an existing source file that was not generated by us.
# This step is mentioned by djb in his notes.


+ 1
- 1
contrib/bash_completion.d/redo View File

@ -23,7 +23,7 @@ __redo_completions()
rest=${name#$cur}
[ "$cur$rest" != "$name" ] && continue
name2="$cur${rest%%/*}"
[ -e "$name2/." ] || echo "$name2"
[ -d "$name2/." ] || echo "$name2"
done
# targets named explicitly by .do files


+ 1
- 1
minimal/do View File

@ -99,7 +99,7 @@ _do()
{
DIR=$1
TARGET=$2
if [ ! -e "$TARGET" ] || [ -e "$TARGET/." -a ! -e "$TARGET.did" ]; then
if [ ! -e "$TARGET" ] || [ -d "$TARGET/." -a ! -e "$TARGET.did" ]; then
printf '%sdo %s%s%s%s\n' \
"$GREEN" "$DO_DEPTH" "$BOLD" "$DIR$TARGET" "$PLAIN" >&2
echo "$PWD/$TARGET" >>"$DO_BUILT"


+ 2
- 0
t/default.vartest.do View File

@ -0,0 +1,2 @@
: ${PREFIX=not defined}
echo "$PREFIX"

+ 3
- 0
t/vartest.do View File

@ -0,0 +1,3 @@
PREFIX=/a/b/c/d/e redo vartest2
read x <vartest2
[ "$x" = "/a/b/c/d/e" ] || exit 45

Loading…
Cancel
Save