Linux standalone, OSX app: Improve runshell script to always quote shell vars, so that it will work when eg, untarred into a directory path with spaces in its name.

This commit is contained in:
Joey Hess 2015-05-26 15:38:44 -04:00
parent dfd145658c
commit 5e1f1bd252
3 changed files with 15 additions and 12 deletions

3
debian/changelog vendored
View file

@ -2,6 +2,9 @@ git-annex (5.20150523) UNRELEASED; urgency=medium
* fromkey, registerurl: Allow urls to be specified instead of keys, * fromkey, registerurl: Allow urls to be specified instead of keys,
and generate URL keys. and generate URL keys.
* Linux standalone, OSX app: Improve runshell script to always quote
shell vars, so that it will work when eg, untarred into a directory
path with spaces in its name.
-- Joey Hess <id@joeyh.name> Fri, 22 May 2015 22:23:32 -0400 -- Joey Hess <id@joeyh.name> Fri, 22 May 2015 22:23:32 -0400

View file

@ -36,9 +36,9 @@ if [ ! -e "$HOME/.ssh/git-annex-shell" ]; then
echo "#!/bin/sh" echo "#!/bin/sh"
echo "set -e" echo "set -e"
echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then" echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"
echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\"" echo "exec '$base/runshell' git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""
echo "else" echo "else"
echo "exec $base/runshell git-annex-shell -c \"\$@\"" echo "exec '$base/runshell' git-annex-shell -c \"\$@\""
echo "fi" echo "fi"
) > "$HOME/.ssh/git-annex-shell" ) > "$HOME/.ssh/git-annex-shell"
chmod +x "$HOME/.ssh/git-annex-shell" chmod +x "$HOME/.ssh/git-annex-shell"
@ -51,7 +51,7 @@ if [ ! -e "$HOME/.ssh/git-annex-wrapper" ]; then
( (
echo "#!/bin/sh" echo "#!/bin/sh"
echo "set -e" echo "set -e"
echo "exec $base/runshell \"\$@\"" echo "exec '$base/runshell' \"\$@\""
) > "$HOME/.ssh/git-annex-wrapper" ) > "$HOME/.ssh/git-annex-wrapper"
chmod +x "$HOME/.ssh/git-annex-wrapper" chmod +x "$HOME/.ssh/git-annex-wrapper"
fi fi
@ -60,11 +60,11 @@ fi
# system binaries. # system binaries.
ORIG_PATH="$PATH" ORIG_PATH="$PATH"
export ORIG_PATH export ORIG_PATH
PATH=$base/bin:$PATH PATH="$base/bin:$PATH"
export PATH export PATH
# This is used by the shim wrapper around each binary. # This is used by the shim wrapper around each binary.
for lib in $(cat $base/libdirs); do for lib in $(cat "$base/libdirs"); do
GIT_ANNEX_LD_LIBRARY_PATH="$base/$lib:$GIT_ANNEX_LD_LIBRARY_PATH" GIT_ANNEX_LD_LIBRARY_PATH="$base/$lib:$GIT_ANNEX_LD_LIBRARY_PATH"
done done
export GIT_ANNEX_LD_LIBRARY_PATH export GIT_ANNEX_LD_LIBRARY_PATH
@ -73,7 +73,7 @@ export GIT_ANNEX_DIR
ORIG_GCONV_PATH="$GCONV_PATH" ORIG_GCONV_PATH="$GCONV_PATH"
export ORIG_GCONV_PATH export ORIG_GCONV_PATH
GCONV_PATH=$base/$(cat $base/gconvdir) GCONV_PATH="$base/$(cat "$base/gconvdir")"
export GCONV_PATH export GCONV_PATH
# workaround for https://ghc.haskell.org/trac/ghc/ticket/7695 # workaround for https://ghc.haskell.org/trac/ghc/ticket/7695
@ -82,7 +82,7 @@ export LOCPATH
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH" ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
export ORIG_GIT_EXEC_PATH export ORIG_GIT_EXEC_PATH
GIT_EXEC_PATH=$base/git-core GIT_EXEC_PATH="$base/git-core"
export GIT_EXEC_PATH export GIT_EXEC_PATH
ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR" ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR"

View file

@ -38,9 +38,9 @@ if [ ! -e "$HOME/.ssh/git-annex-shell" ]; then
echo "#!/bin/sh" echo "#!/bin/sh"
echo "set -e" echo "set -e"
echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then" echo "if [ \"x\$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then"
echo "exec $base/runshell git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\"" echo "exec '$base/runshell' git-annex-shell -c \"\$SSH_ORIGINAL_COMMAND\""
echo "else" echo "else"
echo "exec $base/runshell git-annex-shell -c \"\$@\"" echo "exec '$base/runshell' git-annex-shell -c \"\$@\""
echo "fi" echo "fi"
) > "$HOME/.ssh/git-annex-shell" ) > "$HOME/.ssh/git-annex-shell"
chmod +x "$HOME/.ssh/git-annex-shell" chmod +x "$HOME/.ssh/git-annex-shell"
@ -53,7 +53,7 @@ if [ ! -e "$HOME/.ssh/git-annex-wrapper" ]; then
( (
echo "#!/bin/sh" echo "#!/bin/sh"
echo "set -e" echo "set -e"
echo "exec $base/runshell \"\$@\"" echo "exec '$base/runshell' \"\$@\""
) > "$HOME/.ssh/git-annex-wrapper" ) > "$HOME/.ssh/git-annex-wrapper"
chmod +x "$HOME/.ssh/git-annex-wrapper" chmod +x "$HOME/.ssh/git-annex-wrapper"
fi fi
@ -62,12 +62,12 @@ fi
# system binaries. # system binaries.
ORIG_PATH="$PATH" ORIG_PATH="$PATH"
export ORIG_PATH export ORIG_PATH
PATH=$bundle:$PATH PATH="$bundle:$PATH"
export PATH export PATH
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH" ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
export ORIG_GIT_EXEC_PATH export ORIG_GIT_EXEC_PATH
GIT_EXEC_PATH=$bundle GIT_EXEC_PATH="$bundle"
export GIT_EXEC_PATH export GIT_EXEC_PATH
ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR" ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR"