@@ -10,68 +10,44 @@ GITHUB_ACTION_PATH="${GITHUB_ACTION_PATH%/}"
10
10
DRONE_SSH_RELEASE_URL=" ${DRONE_SSH_RELEASE_URL:- https:// github.com/ appleboy/ drone-ssh/ releases/ download} "
11
11
DRONE_SSH_VERSION=" ${DRONE_SSH_VERSION:- 1.8.1} "
12
12
13
+ function log_error() {
14
+ echo " $1 " >&2
15
+ exit " $2 "
16
+ }
17
+
13
18
function detect_client_info() {
14
- if [ -n " ${SSH_CLIENT_OS-} " ]; then
15
- CLIENT_PLATFORM=" ${SSH_CLIENT_OS} "
16
- else
17
- local kernel
18
- kernel=" $( uname -s) "
19
- case " ${kernel} " in
20
- Darwin)
21
- CLIENT_PLATFORM=" darwin"
22
- ;;
23
- Linux)
24
- CLIENT_PLATFORM=" linux"
25
- ;;
26
- Windows)
27
- CLIENT_PLATFORM=" windows"
28
- ;;
29
- * )
30
- echo " Unknown, unsupported platform: ${kernel} ." >&2
31
- echo " Supported platforms: Linux, Darwin and Windows." >&2
32
- echo " Bailing out." >&2
33
- exit 2
34
- ;;
35
- esac
36
- fi
19
+ CLIENT_PLATFORM=" ${SSH_CLIENT_OS:- $(uname -s | tr ' [:upper:]' ' [:lower:]' )} "
20
+ CLIENT_ARCH=" ${SSH_CLIENT_ARCH:- $(uname -m)} "
21
+
22
+ case " ${CLIENT_PLATFORM} " in
23
+ darwin | linux | windows) ;;
24
+ * ) log_error " Unknown, unsupported platform: ${CLIENT_PLATFORM} . Supported platforms: Linux, Darwin, and Windows." 2 ;;
25
+ esac
37
26
38
- if [ -n " ${SSH_CLIENT_ARCH-} " ]; then
39
- CLIENT_ARCH=" ${SSH_CLIENT_ARCH} "
40
- else
41
- local machine
42
- machine=" $( uname -m) "
43
- case " ${machine} " in
44
- x86_64* | i? 86_64* | amd64* )
45
- CLIENT_ARCH=" amd64"
46
- ;;
47
- aarch64* | arm64* )
48
- CLIENT_ARCH=" arm64"
49
- ;;
50
- * )
51
- echo " Unknown, unsupported architecture (${machine} )." >&2
52
- echo " Supported architectures x86_64, i686, arm64." >&2
53
- echo " Bailing out." >&2
54
- exit 3
55
- ;;
56
- esac
57
- fi
27
+ case " ${CLIENT_ARCH} " in
28
+ x86_64* | i? 86_64* | amd64* ) CLIENT_ARCH=" amd64" ;;
29
+ aarch64* | arm64* ) CLIENT_ARCH=" arm64" ;;
30
+ * ) log_error " Unknown, unsupported architecture: ${CLIENT_ARCH} . Supported architectures: x86_64, i686, arm64." 3 ;;
31
+ esac
58
32
}
59
33
60
34
detect_client_info
61
35
DOWNLOAD_URL_PREFIX=" ${DRONE_SSH_RELEASE_URL} /v${DRONE_SSH_VERSION} "
62
36
CLIENT_BINARY=" drone-ssh-${DRONE_SSH_VERSION} -${CLIENT_PLATFORM} -${CLIENT_ARCH} "
63
37
TARGET=" ${GITHUB_ACTION_PATH} /${CLIENT_BINARY} "
64
38
echo " Will download ${CLIENT_BINARY} from ${DOWNLOAD_URL_PREFIX} "
65
- curl -fsSL --retry 5 --keepalive-time 2 " ${DOWNLOAD_URL_PREFIX} /${CLIENT_BINARY} " -o ${TARGET}
66
- chmod +x ${TARGET}
39
+ curl -fsSL --retry 5 --keepalive-time 2 " ${DOWNLOAD_URL_PREFIX} /${CLIENT_BINARY} " -o " ${TARGET} "
40
+ chmod +x " ${TARGET} "
67
41
68
42
echo " ======= CLI Version ======="
69
- sh -c " ${TARGET} --version " # print version
43
+ " ${TARGET} " --version
70
44
echo " ==========================="
71
- if [[ " $INPUT_CAPTURE_STDOUT " == ' true' ]]; then
72
- echo ' stdout<<EOF' >> $GITHUB_OUTPUT # use heredoc for multiline output
73
- sh -c " ${TARGET} $* " | tee -a $GITHUB_OUTPUT # run the command
74
- echo ' EOF' >> $GITHUB_OUTPUT
45
+ if [[ " ${INPUT_CAPTURE_STDOUT} " == ' true' ]]; then
46
+ {
47
+ echo ' stdout<<EOF'
48
+ " ${TARGET} " " $@ " | tee -a " ${GITHUB_OUTPUT} "
49
+ echo ' EOF'
50
+ } >> " ${GITHUB_OUTPUT} "
75
51
else
76
- sh -c " ${TARGET} $* " # run the command
52
+ " ${TARGET} " " $@ "
77
53
fi
0 commit comments