Fix minimal/do and tests when built in a path containing spaces.

Basically all just missing quotes around shell strings that use $PWD.
Most paths inside a project, since redo uses relative paths, only need
to worry when project-internal directories or filenames have spaces in
them.

Reported-by: Jeff Stearns <jeff.stearns@gmail.com>
This commit is contained in:
Avery Pennarun 2018-12-11 01:19:58 +00:00
commit 474e12eed8
6 changed files with 19 additions and 17 deletions

View file

@ -19,24 +19,25 @@ read py <redo/whichpython
echo "Installing to: $DESTDIR$PREFIX"
# make dirs
$INSTALL -d $MANDIR/man1 $DOCDIR $BINDIR $LIBDIR $LIBDIR/version
"$INSTALL" -d "$MANDIR/man1" "$DOCDIR" "$BINDIR" \
"$LIBDIR" "$LIBDIR/version"
# docs
for d in docs/*.1; do
[ "$d" = "docs/*.1" ] && continue
$INSTALL -m 0644 $d $MANDIR/man1
"$INSTALL" -m 0644 $d "$MANDIR/man1"
done
$INSTALL -m 0644 README.md $DOCDIR
"$INSTALL" -m 0644 README.md "$DOCDIR"
# .py files (precompiled to .pyc files for speed)
$INSTALL -m 0644 redo/*.py $LIBDIR/
$INSTALL -m 0644 redo/version/*.py $LIBDIR/version/
$py -mcompileall $LIBDIR
"$INSTALL" -m 0644 redo/*.py "$LIBDIR/"
"$INSTALL" -m 0644 redo/version/*.py "$LIBDIR/version/"
"$py" -mcompileall "$LIBDIR"
# It's important for the file to actually be named 'sh'. Some shells (like
# bash and zsh) only go into POSIX-compatible mode if they have that name.
cp -R redo/sh $LIBDIR/sh
cp -R redo/sh "$LIBDIR/sh"
# binaries
bins=$(ls bin/redo* | grep '^bin/redo[-a-z]*$')
$INSTALL -m 0755 $bins $BINDIR/
"$INSTALL" -m 0755 $bins "$BINDIR/"