-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcheck-environment.sh
executable file
·89 lines (76 loc) · 2.34 KB
/
check-environment.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
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env bash
#
# This script checks, whether all needed commands are available
# and are in the correct version.
#
set -e
SCRIPT_INCLUDES="log.bash"
# shellcheck source=inc/fetch_ci_scripts.bash
source "$(dirname "$0")/inc/fetch_ci_scripts.bash" && fetch_ci_scripts
function main() {
check_environment
}
function check_environment() {
FAILED_CHECKS=""
# every OS:
check "curl" "curl --version" "curl"
check "jq" "jq --version" "jq"
check "locale" "echo $(locale|grep ^LANG=)" "en_US.UTF-8"
case "$(uname)" in
Linux*)
check "ruby" "ruby --version" "ruby 3"
check "gpg" "gpg --version" "gpg (GnuPG) 2."
check "printenv" "printenv --version" "printenv (GNU coreutils)"
check "rsync" "rsync --version" "version"
check "ssh" "ssh -V" "OpenSSH"
check "git" "git --version" "git version"
check "mvn" "mvn --version" "Apache Maven"
check "unzip" "unzip -v" "UnZip"
check "zip" "zip --version" "This is Zip"
#check "7z" "7z" "7-Zip"
;;
Darwin*)
;;
CYGWIN*|MINGW*|MSYS_NT*)
check "7z" "7z" "7-Zip"
;;
*)
pmd_ci_log_error "Unknown OS: $(uname)"
exit 1
;;
esac
if [ -n "${FAILED_CHECKS}" ]; then
pmd_ci_log_error "Result: failed_checks: ${FAILED_CHECKS}"
exit 1
else
pmd_ci_log_success "No problems detected."
exit 0
fi
}
function check() {
local cmd
local version_cmd
local version_string
local version_full
local version
cmd=$1
version_cmd=$2
version_string=$3
echo -n "Checking ${cmd}..."
if hash "$cmd" 2>/dev/null; then
version_full=$(${version_cmd} 2>&1)
version=$(echo "${version_full}" | grep "${version_string}" | head -1 2>&1)
if [ -n "${version}" ]; then
echo -e "${PMD_CI_LOG_COL_GREEN}OK${PMD_CI_LOG_COL_RESET}"
echo " ${version}"
else
echo -e "${PMD_CI_LOG_COL_RED}wrong version${PMD_CI_LOG_COL_RESET}. Expected: ${version_string}"
echo " ${version_full}"
FAILED_CHECKS="${FAILED_CHECKS} ${cmd}"
fi
else
echo -e "${PMD_CI_LOG_COL_RED}not found!${PMD_CI_LOG_COL_RESET}"
FAILED_CHECKS="${FAILED_CHECKS} ${cmd}"
fi
}
main