forked from fifsky/ssh-action
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathentrypoint.sh
executable file
·54 lines (41 loc) · 1.06 KB
/
entrypoint.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/sh
set -eu
SSHPATH="$HOME/.ssh"
if [ ! -d "$SSHPATH" ]
then
mkdir "$SSHPATH"
fi
if [ ! -f "$SSHPATH/known_hosts" ]
then
touch "$SSHPATH/known_hosts"
fi
echo "$INPUT_KEY" > "$SSHPATH/deploy_key"
chmod 700 "$SSHPATH"
chmod 600 "$SSHPATH/known_hosts"
chmod 600 "$SSHPATH/deploy_key"
eval $(ssh-agent)
ssh-add "$SSHPATH/deploy_key"
echo ""
echo '##[command]Commands'
echo 'echo ""' >> $HOME/shell.sh
IFS='
'
for i in $INPUT_COMMAND
do
echo $i
echo 'COMMAND=$(cat <<-END' >> $HOME/shell.sh
echo $i >> $HOME/shell.sh
echo 'END' >> $HOME/shell.sh
echo ')' >> $HOME/shell.sh
echo 'echo "##[command]"$COMMAND' >> $HOME/shell.sh
echo $i >> $HOME/shell.sh
echo 'echo ""' >> $HOME/shell.sh
done
echo ""
echo '##[command]Run commands'
if [ "$INPUT_PASS" = "" ]
then
sh -c "ssh -A -i $SSHPATH/deploy_key -o StrictHostKeyChecking=no -p $INPUT_PORT ${INPUT_USER}@${INPUT_HOST} /bin/sh < $HOME/shell.sh"
else
sh -c "sshpass -A -p $INPUT_PASS ssh -o StrictHostKeyChecking=no -p $INPUT_PORT ${INPUT_USER}@${INPUT_HOST} /bin/sh < $HOME/shell.sh"
fi