@@ -22,32 +22,29 @@ RUNAFTER="${INPUT_RUNAFTER/$'\n'/' && '}"
2222
2323if [ -z " $INPUT_KEY " ]
2424then # Password
25- echo " > Exporting Password"
26- export SSHPASS=$PASS
27-
25+ echo " > Using printf to handle special characters in password"
26+
2827 [[ -z " ${INPUT_RUNBEFORE} " ]] && {
2928 echo " > Executing commands before deployment"
30- sshpass -e ssh -o StrictHostKeyChecking=no -p $INPUT_PORT $INPUT_USER @$INPUT_HOST " $RUNBEFORE "
29+ printf ' %s\n ' " $INPUT_PASS " | sshpass -p " $( cat ) " ssh -o StrictHostKeyChecking=no -p $INPUT_PORT $INPUT_USER @$INPUT_HOST " $RUNBEFORE "
3130 }
3231
33-
3432 echo " > Deploying now"
3533 if [ -z " $INPUT_EXTRA " ]
3634 then
37- echo " sshpass -p $INPUT_PASS rsync $INPUT_BASESWICHES --progress --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE / $INPUT_LOCAL $INPUT_USER @ $INPUT_HOST : $INPUT_REMOTE "
38- sh -c " sshpass -p $INPUT_PASS rsync $INPUT_BASESWICHES --progress --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
35+ echo " Executing rsync with base switches "
36+ printf ' %s\n ' " $INPUT_PASS " | sh -c " sshpass -p \" $( cat ) \" rsync $INPUT_BASESWICHES --progress --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
3937 else
4038 EXTRA=" $INPUT_EXTRA "
41- echo " sshpass -p $INPUT_PASS rsync $INPUT_BASESWICHES $EXTRA -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE / $INPUT_LOCAL $INPUT_USER @ $INPUT_HOST : $INPUT_REMOTE "
42- sh -c " sshpass -p $INPUT_PASS rsync $INPUT_BASESWICHES $EXTRA -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
39+ echo " Executing rsync with base switches and extra options "
40+ printf ' %s\n ' " $INPUT_PASS " | sh -c " sshpass -p \" $( cat ) \" rsync $INPUT_BASESWICHES $EXTRA -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
4341 fi
4442
4543 [[ -z " ${INPUT_RUNAFTER} " ]] && {
4644 echo " > Executing commands after deployment"
47- sshpass -e ssh -o StrictHostKeyChecking=no -p $INPUT_PORT $INPUT_USER @$INPUT_HOST " $RUNAFTER "
45+ printf ' %s\n ' " $INPUT_PASS " | sshpass -p " $( cat ) " ssh -o StrictHostKeyChecking=no -p $INPUT_PORT $INPUT_USER @$INPUT_HOST " $RUNAFTER "
4846 }
49-
50-
47+
5148else # Private key
5249 pwd
5350 mkdir " /root/.ssh"
@@ -71,19 +68,19 @@ else # Private key
7168 echo " > Deploying now"
7269 if [ -z " $INPUT_EXTRA " ]
7370 then
74- EXTRA= " $INPUT_EXTRA "
75- sh -c " sshpass -e rsync -avhz --progress --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
71+ echo " Executing rsync with base switches "
72+ sh -c " sshpass -e rsync $INPUT_BASESWICHES --progress --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
7673 else
77- sh -c " sshpass -e rsync -avhz --progress $EXTRA --stats -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
74+ EXTRA=" $INPUT_EXTRA "
75+ echo " Executing rsync with base switches and extra options"
76+ sh -c " sshpass -e rsync $INPUT_BASESWICHES $EXTRA -e 'ssh -p $INPUT_PORT ' $GITHUB_WORKSPACE /$INPUT_LOCAL $INPUT_USER @$INPUT_HOST :$INPUT_REMOTE "
7877 fi
7978
80-
8179 [[ -z " ${INPUT_RUNAFTER} " ]] && {
8280 echo " > Executing commands after deployment"
8381 sshpass -e ssh -o StrictHostKeyChecking=no -p $INPUT_PORT $INPUT_USER @$INPUT_HOST " $RUNAFTER "
8482 }
8583fi
8684
87-
8885echo " #################################################"
8986echo " Completed ${GITHUB_WORKFLOW} :${GITHUB_ACTION} "
0 commit comments