diff options
author | Joey Hess <joey@kitenet.net> | 2013-03-12 07:12:39 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-03-12 07:12:39 -0400 |
commit | 59227667ea41c7e255c2124ebf346c408c56eaa2 (patch) | |
tree | edaa95d45be61b4342cc3abcc685eec2d145e742 /Assistant/Ssh.hs | |
parent | 9348bb82fee581c26898e3c862dbeb4dbb3184e6 (diff) |
assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the ssh key does not force a command.
Without a forced command, SSH_ORIGINAL_COMMAND is not set.
So instead, in this case, run $@
Diffstat (limited to 'Assistant/Ssh.hs')
-rw-r--r-- | Assistant/Ssh.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Assistant/Ssh.hs b/Assistant/Ssh.hs index 4c8d8afbf..98b21b13b 100644 --- a/Assistant/Ssh.hs +++ b/Assistant/Ssh.hs @@ -127,8 +127,13 @@ addAuthorizedKeysCommand rsynconly dir pubkey = join "&&" script = [ shebang , "set -e" - , "exec git-annex-shell -c \"$SSH_ORIGINAL_COMMAND\"" + , "if [ \"x$SSH_ORIGINAL_COMMAND\" != \"x\" ]; then" + , runshell "$SSH_ORIGINAL_COMMAND" + , "else" + , runshell "$@" + , "fi" ] + runshell var = "exec git-annex-shell -c \"" ++ var ++ "\"" authorizedKeysLine :: Bool -> FilePath -> SshPubKey -> String authorizedKeysLine rsynconly dir pubkey |