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,
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

View file

@ -36,9 +36,9 @@ if [ ! -e "$HOME/.ssh/git-annex-shell" ]; then
echo "#!/bin/sh"
echo "set -e"
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 "exec $base/runshell git-annex-shell -c \"\$@\""
echo "exec '$base/runshell' git-annex-shell -c \"\$@\""
echo "fi"
) > "$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 "set -e"
echo "exec $base/runshell \"\$@\""
echo "exec '$base/runshell' \"\$@\""
) > "$HOME/.ssh/git-annex-wrapper"
chmod +x "$HOME/.ssh/git-annex-wrapper"
fi
@ -60,11 +60,11 @@ fi
# system binaries.
ORIG_PATH="$PATH"
export ORIG_PATH
PATH=$base/bin:$PATH
PATH="$base/bin:$PATH"
export PATH
# 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"
done
export GIT_ANNEX_LD_LIBRARY_PATH
@ -73,7 +73,7 @@ export GIT_ANNEX_DIR
ORIG_GCONV_PATH="$GCONV_PATH"
export ORIG_GCONV_PATH
GCONV_PATH=$base/$(cat $base/gconvdir)
GCONV_PATH="$base/$(cat "$base/gconvdir")"
export GCONV_PATH
# workaround for https://ghc.haskell.org/trac/ghc/ticket/7695
@ -82,7 +82,7 @@ export LOCPATH
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
export ORIG_GIT_EXEC_PATH
GIT_EXEC_PATH=$base/git-core
GIT_EXEC_PATH="$base/git-core"
export GIT_EXEC_PATH
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 "set -e"
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 "exec $base/runshell git-annex-shell -c \"\$@\""
echo "exec '$base/runshell' git-annex-shell -c \"\$@\""
echo "fi"
) > "$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 "set -e"
echo "exec $base/runshell \"\$@\""
echo "exec '$base/runshell' \"\$@\""
) > "$HOME/.ssh/git-annex-wrapper"
chmod +x "$HOME/.ssh/git-annex-wrapper"
fi
@ -62,12 +62,12 @@ fi
# system binaries.
ORIG_PATH="$PATH"
export ORIG_PATH
PATH=$bundle:$PATH
PATH="$bundle:$PATH"
export PATH
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
export ORIG_GIT_EXEC_PATH
GIT_EXEC_PATH=$bundle
GIT_EXEC_PATH="$bundle"
export GIT_EXEC_PATH
ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR"