summaryrefslogtreecommitdiff
path: root/examples/caretaker-ssh-command
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-09-30 10:14:33 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-09-30 10:14:33 +0200
commit164a257c3e0af90736833e0febcfddd3ba2c285e (patch)
treedbb7d8adc0a58dee12936e5e8fef8c978374fb8d /examples/caretaker-ssh-command
parentc968d64b95f3b953093c7020730717ea7e7123cc (diff)
Support non-standard ssh ports without ~/.ssh/config adjustments
Diffstat (limited to 'examples/caretaker-ssh-command')
-rwxr-xr-xexamples/caretaker-ssh-command14
1 files changed, 12 insertions, 2 deletions
diff --git a/examples/caretaker-ssh-command b/examples/caretaker-ssh-command
index 456a97d..352d22e 100755
--- a/examples/caretaker-ssh-command
+++ b/examples/caretaker-ssh-command
@@ -10,15 +10,18 @@
# Change this to reflect your settings
PKG_PROTO='ssh'
-PKG_UAH='derf@aneurysm'
+PKG_UAH='derf@pkgroot.finalrewind.org'
PKG_PATH='/home/derf/var/packages_root'
+PKG_PORT='2222'
# Change this to the location of your pkglist script (if non-default)
PKG_LIST=${PKG_PATH}/pkglist
args=(${(z)SSH_ORIGINAL_COMMAND})
-
+# Note: This check accepts connections on ports 22 (standard, PKG_PORT unset)
+# and 2222 (non-standard, PKG_PORT set). You can remove the second block if you
+# only use port 22.
if [[ \
( \
${args[1]} == "PKG_PATH=\"${PKG_PATH}\"" && \
@@ -27,6 +30,13 @@ if [[ \
${args[4]} == ${PKG_LIST} && \
${#args} == 4 \
) || ( \
+ ${args[1]} == "PKG_PATH=\"${PKG_PATH}\"" && \
+ ${args[2]} == "PKG_UAH=\"${PKG_UAH}\"" && \
+ ${args[3]} == "PKG_PORT=\"${PKG_PORT}\"" && \
+ ${args[4]} == "PKG_PROTO=\"${PKG_PROTO}\"" && \
+ ${args[5]} == ${PKG_LIST} && \
+ ${#args} == 5 \
+ ) || ( \
${args[1]} == 'git-'(upload|receive)'-pack' && \
${args[2]} != *'../'* && \
${args[2]} == \'${PKG_ROOT}/*\' && \