-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkli.sh
executable file
·76 lines (62 loc) · 1.67 KB
/
kli.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
DEFAULT_KLI_VERSION=v1.0-alpha.4
show_help() {
cat << EOF
Usage: $(basename "$0") <options>
-h, --help Display help
-v, --version The kli version to use (default: $DEFAULT_KLI_VERSION)"
EOF
}
main() {
local version="$DEFAULT_KLI_VERSION"
parse_command_line "$@"
install_kli
}
parse_command_line() {
while :; do
case "${1:-}" in
-h|--help)
show_help
exit
;;
-v|--version)
if [[ -n "${2:-}" ]]; then
version="$2"
shift
else
echo "ERROR: '-v|--version' cannot be empty." >&2
show_help
exit 1
fi
;;
*)
break
;;
esac
shift
done
}
install_kli() {
if [[ ! -d "$RUNNER_TOOL_CACHE" ]]; then
echo "Cache directory '$RUNNER_TOOL_CACHE' does not exist" >&2
exit 1
fi
local arch
arch=$(uname -m)
local cache_dir="$RUNNER_TOOL_CACHE/kli/$version/$arch"
if [[ ! -d "$cache_dir" ]]; then
mkdir -p "$cache_dir"
echo "Installing kli..."
curl -sSLo kli.tar.gz "https://github.com/konstellation-io/kli/releases/download/$version/kli_${version#v}_linux_amd64.tar.gz"
tar -xzf kli.tar.gz -C "$cache_dir"
rm -f kli.tar.gz
fi
echo 'Adding kli directory to PATH...'
echo "$cache_dir" >> "$GITHUB_PATH"
mv "$cache_dir/kli_${version#v}_linux_amd64/bin/kli" "$cache_dir/kli"
"$cache_dir/kli" version
}
main "$@"