From 4c5c6aa53ae81aa912573bc3bd3257d9fef1cc09 Mon Sep 17 00:00:00 2001 From: Nguyen Huu Thuong Date: Fri, 12 Jun 2020 11:55:03 +0200 Subject: [PATCH] allow create remote dir if not exist --- entrypoint.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/entrypoint.sh b/entrypoint.sh index 5319ff5..9f1258a 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -20,6 +20,22 @@ createKeyFile() { ssh-keyscan -t rsa "$INPUT_HOST" >> "$SSH_PATH/known_hosts" } +check_remote_dir() { + local USEPASS=$1 + local REMOTE=$2 + CMD="ssh" + if $USEPASS; then + CMD="sshpass -p $INPUT_PASS scp" + fi + echo "Checking remote directory: '$REMOTE'" + if $CMD -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -p "${INPUT_PORT:-22}" "$INPUT_USER"@"$INPUT_HOST" "[ ! -d $REMOTE ]"; then + echo "Creating: '$REMOTE' on '$INPUT_USER'@'$INPUT_HOST'" + -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -p "${INPUT_PORT:-22}" "$INPUT_USER"@"$INPUT_HOST" "mkdir -p $REMOTE" + else + echo "'$REMOTE' exists [OK]" + fi +} + executeSCP() { local USEPASS=$1 local LINES=$2 @@ -50,6 +66,7 @@ executeSCP() { if [[ -z "${LOCAL}" ]] || [[ -z "${REMOTE}" ]]; then echo "LOCAL/REMOTE can not be parsed $LINE" else + check_remote_dir $USEPASS $REMOTE echo "Copying $LOCAL ---> $REMOTE" $CMD -r -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -P "${INPUT_PORT:-22}" $LOCAL "$INPUT_USER"@"$INPUT_HOST":$REMOTE > /dev/stdout fi