diff options
Diffstat (limited to 'examples/caretaker-ssh-command')
-rwxr-xr-x | examples/caretaker-ssh-command | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/examples/caretaker-ssh-command b/examples/caretaker-ssh-command index 03f3e94..456a97d 100755 --- a/examples/caretaker-ssh-command +++ b/examples/caretaker-ssh-command @@ -8,24 +8,35 @@ # required by caretaker. However, be warned that I am no security expert, so # there might be flaws in here. Use at own risk. -# Change this to your package root -PKG_ROOT='/home/derf/var/packages_root' +# Change this to reflect your settings +PKG_PROTO='ssh' +PKG_UAH='derf@aneurysm' +PKG_PATH='/home/derf/var/packages_root' # Change this to the location of your pkglist script (if non-default) -PKG_LIST=${PKG_ROOT}/pkglist +PKG_LIST=${PKG_PATH}/pkglist args=(${(z)SSH_ORIGINAL_COMMAND}) + if [[ \ ( \ - ${args[1]} == ${PKG_LIST} && \ - ${args[2]} == ${PKG_ROOT} \ + ${args[1]} == "PKG_PATH=\"${PKG_PATH}\"" && \ + ${args[2]} == "PKG_UAH=\"${PKG_UAH}\"" && \ + ${args[3]} == "PKG_PROTO=\"${PKG_PROTO}\"" && \ + ${args[4]} == ${PKG_LIST} && \ + ${#args} == 4 \ ) || ( \ ${args[1]} == 'git-'(upload|receive)'-pack' && \ ${args[2]} != *'../'* && \ - ${args[2]} == \'${PKG_ROOT}/*\' \ + ${args[2]} == \'${PKG_ROOT}/*\' && \ + ${#args} == 2 \ ) ]] \ { - args[2]=${args[2]//\'} - ${args} + if [[ ${#args} == 2 ]] { + args[2]=${args[2]//\'} + ${args} + } else { + eval ${args} + } } |