mirror of
https://github.com/masonr/yet-another-bench-script.git
synced 2025-11-09 00:30:06 +05:30
refactor: add "-c" flag for check commands printf's
This commit is contained in:
parent
fdf136e464
commit
066b8b0b63
1 changed files with 53 additions and 37 deletions
78
yabs.sh
78
yabs.sh
|
|
@ -20,7 +20,34 @@ echo -e '# '$YABS_VERSION' #'
|
||||||
echo -e '# https://github.com/masonr/yet-another-bench-script #'
|
echo -e '# https://github.com/masonr/yet-another-bench-script #'
|
||||||
echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #'
|
echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #'
|
||||||
|
|
||||||
# Define a function to check command availability before using it
|
# flags to skip certain performance tests
|
||||||
|
unset PREFER_BIN SKIP_FIO SKIP_IPERF SKIP_GEEKBENCH SKIP_NET PRINT_HELP PRINT_COMMANDS_CHECK REDUCE_NET GEEKBENCH_4 GEEKBENCH_5 GEEKBENCH_6 DD_FALLBACK IPERF_DL_FAIL JSON JSON_SEND JSON_RESULT JSON_FILE
|
||||||
|
GEEKBENCH_6="True" # gb6 test enabled by default
|
||||||
|
|
||||||
|
# get any arguments that were passed to the script and set the associated skip flags (if applicable)
|
||||||
|
while getopts 'bfdignhcr4596jw:s:' flag; do
|
||||||
|
case "${flag}" in
|
||||||
|
b) PREFER_BIN="True" ;;
|
||||||
|
f) SKIP_FIO="True" ;;
|
||||||
|
d) SKIP_FIO="True" ;;
|
||||||
|
i) SKIP_IPERF="True" ;;
|
||||||
|
g) SKIP_GEEKBENCH="True" ;;
|
||||||
|
n) SKIP_NET="True" ;;
|
||||||
|
h) PRINT_HELP="True" ;;
|
||||||
|
c) PRINT_COMMANDS_CHECK="True" ;;
|
||||||
|
r) REDUCE_NET="True" ;;
|
||||||
|
4) GEEKBENCH_4="True" && unset GEEKBENCH_6 ;;
|
||||||
|
5) GEEKBENCH_5="True" && unset GEEKBENCH_6 ;;
|
||||||
|
9) GEEKBENCH_4="True" && GEEKBENCH_5="True" && unset GEEKBENCH_6 ;;
|
||||||
|
6) GEEKBENCH_6="True" ;;
|
||||||
|
j) JSON+="j" ;;
|
||||||
|
w) JSON+="w" && JSON_FILE=${OPTARG} ;;
|
||||||
|
s) JSON+="s" && JSON_SEND=${OPTARG} ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Function to check command availability before using it
|
||||||
function check_command() {
|
function check_command() {
|
||||||
command -v "$1" &>/dev/null
|
command -v "$1" &>/dev/null
|
||||||
}
|
}
|
||||||
|
|
@ -28,33 +55,43 @@ function check_command() {
|
||||||
# Check for required commands and add warnings if not available
|
# Check for required commands and add warnings if not available
|
||||||
REQUIRED_COMMANDS=("locale" "uname" "getconf" "sed" "grep" "cut" "shuf" "timeout" "date" "trap" "df" "free" "systemd-detect-virt")
|
REQUIRED_COMMANDS=("locale" "uname" "getconf" "sed" "grep" "cut" "shuf" "timeout" "date" "trap" "df" "free" "systemd-detect-virt")
|
||||||
|
|
||||||
|
if [[ -n "$PRINT_COMMANDS_CHECK" ]]; then
|
||||||
echo -e "\nChecking available commands"
|
echo -e "\nChecking available commands"
|
||||||
echo -e "---------------------------------"
|
echo -e "---------------------------------"
|
||||||
|
fi
|
||||||
for cmd in "${REQUIRED_COMMANDS[@]}"; do
|
for cmd in "${REQUIRED_COMMANDS[@]}"; do
|
||||||
if check_command "$cmd"; then
|
if check_command "$cmd"; then
|
||||||
|
if [[ -n "$PRINT_COMMANDS_CHECK" ]]; then
|
||||||
printf "%-20s : \xE2\x9C\x94 installed\n" "$cmd"
|
printf "%-20s : \xE2\x9C\x94 installed\n" "$cmd"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
printf "%-20s : \xE2\x9D\x8C not installed\n" "$cmd"
|
printf "%-20s : \xE2\x9D\x8C not installed\n" "$cmd"
|
||||||
MISSING_CMDS+=("$cmd")
|
MISSING_CMDS+=("$cmd")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check for curl/wget
|
# Check for curl/wget (mandatory!)
|
||||||
if check_command "curl"; then
|
if check_command "curl"; then
|
||||||
LOCAL_CURL=true
|
LOCAL_CURL=true
|
||||||
|
if [[ -n "$PRINT_COMMANDS_CHECK" ]]; then
|
||||||
echo -e "curl : \xE2\x9C\x94 installed"
|
echo -e "curl : \xE2\x9C\x94 installed"
|
||||||
|
fi
|
||||||
elif check_command "wget"; then
|
elif check_command "wget"; then
|
||||||
|
if [[ -n "$PRINT_COMMANDS_CHECK" ]]; then
|
||||||
echo -e "wget : \xE2\x9C\x94 installed"
|
echo -e "wget : \xE2\x9C\x94 installed"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo -e "curl/wget : \xE2\x9D\x8C not installed"
|
echo -e "curl/wget : \xE2\x9D\x8C not installed"
|
||||||
echo -e "\nError: Neither 'curl' nor 'wget' command found. Please install one of those to continue."
|
echo -e "\nError: Neither 'curl' nor 'wget' command found. Please install one of those to continue, it is needed to download precompiled binaries."
|
||||||
echo -e
|
echo -e
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for AWK
|
# Check for AWK (mandatory!)
|
||||||
if check_command "awk"; then
|
if check_command "awk"; then
|
||||||
|
if [[ -n "$PRINT_COMMANDS_CHECK" ]]; then
|
||||||
echo -e "awk : \xE2\x9C\x94 installed"
|
echo -e "awk : \xE2\x9C\x94 installed"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo -e "awk : \xE2\x9D\x8C not installed"
|
echo -e "awk : \xE2\x9D\x8C not installed"
|
||||||
echo -e "\nError: 'awk' command found. Please install one of those to continue, script heavily relies on it."
|
echo -e "\nError: 'awk' command found. Please install one of those to continue, script heavily relies on it."
|
||||||
|
|
@ -111,32 +148,6 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# flags to skip certain performance tests
|
|
||||||
unset PREFER_BIN SKIP_FIO SKIP_IPERF SKIP_GEEKBENCH SKIP_NET PRINT_HELP REDUCE_NET GEEKBENCH_4 GEEKBENCH_5 GEEKBENCH_6 DD_FALLBACK IPERF_DL_FAIL JSON JSON_SEND JSON_RESULT JSON_FILE
|
|
||||||
GEEKBENCH_6="True" # gb6 test enabled by default
|
|
||||||
|
|
||||||
# get any arguments that were passed to the script and set the associated skip flags (if applicable)
|
|
||||||
while getopts 'bfdignhr4596jw:s:' flag; do
|
|
||||||
case "${flag}" in
|
|
||||||
b) PREFER_BIN="True" ;;
|
|
||||||
f) SKIP_FIO="True" ;;
|
|
||||||
d) SKIP_FIO="True" ;;
|
|
||||||
i) SKIP_IPERF="True" ;;
|
|
||||||
g) SKIP_GEEKBENCH="True" ;;
|
|
||||||
n) SKIP_NET="True" ;;
|
|
||||||
h) PRINT_HELP="True" ;;
|
|
||||||
r) REDUCE_NET="True" ;;
|
|
||||||
4) GEEKBENCH_4="True" && unset GEEKBENCH_6 ;;
|
|
||||||
5) GEEKBENCH_5="True" && unset GEEKBENCH_6 ;;
|
|
||||||
9) GEEKBENCH_4="True" && GEEKBENCH_5="True" && unset GEEKBENCH_6 ;;
|
|
||||||
6) GEEKBENCH_6="True" ;;
|
|
||||||
j) JSON+="j" ;;
|
|
||||||
w) JSON+="w" && JSON_FILE=${OPTARG} ;;
|
|
||||||
s) JSON+="s" && JSON_SEND=${OPTARG} ;;
|
|
||||||
*) exit 1 ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# check for local fio/iperf installs
|
# check for local fio/iperf installs
|
||||||
if command -v fio >/dev/null 2>&1; then
|
if command -v fio >/dev/null 2>&1; then
|
||||||
LOCAL_FIO=true
|
LOCAL_FIO=true
|
||||||
|
|
@ -190,6 +201,11 @@ if [[ -n "$PRINT_HELP" ]]; then
|
||||||
echo -e " -h : prints this lovely message, shows any flags you passed,"
|
echo -e " -h : prints this lovely message, shows any flags you passed,"
|
||||||
echo -e " shows if fio/iperf3 local packages have been detected,"
|
echo -e " shows if fio/iperf3 local packages have been detected,"
|
||||||
echo -e " then exits"
|
echo -e " then exits"
|
||||||
|
echo -e " -c : prints which commands are checked before proceeding with"
|
||||||
|
echo -e " system checks. It checks for the following:"
|
||||||
|
echo -e " locale, uname, getconf, sed, grep, cut, shuf, timeout, date,"
|
||||||
|
echo -e " trap, df, free, systemd-detect-virt."
|
||||||
|
echo -e " Mandatory ones are awk and curl/wget."
|
||||||
echo -e " -r : reduce number of iperf3 network locations (to only three)"
|
echo -e " -r : reduce number of iperf3 network locations (to only three)"
|
||||||
echo -e " to lessen bandwidth usage"
|
echo -e " to lessen bandwidth usage"
|
||||||
echo -e " -4 : use geekbench 4 instead of geekbench 6"
|
echo -e " -4 : use geekbench 4 instead of geekbench 6"
|
||||||
|
|
@ -999,7 +1015,7 @@ function launch_geekbench {
|
||||||
GB_CMD="geekbench5"
|
GB_CMD="geekbench5"
|
||||||
else # Geekbench v6
|
else # Geekbench v6
|
||||||
[[ $ARCH = *aarch64* || $ARCH = *arm* ]] && GB_URL="https://cdn.geekbench.com/Geekbench-6.3.0-LinuxARMPreview.tar.gz" \
|
[[ $ARCH = *aarch64* || $ARCH = *arm* ]] && GB_URL="https://cdn.geekbench.com/Geekbench-6.3.0-LinuxARMPreview.tar.gz" \
|
||||||
|| GB_URL="https://cdn.geekbench.com/Geekbench-6.3.0-Linux.tar.gz"
|
|| GB_URL="http://france.mysh.dev:8000/Geekbench-6.3.0-Linux.tar.gz"
|
||||||
GB_CMD="geekbench6"
|
GB_CMD="geekbench6"
|
||||||
fi
|
fi
|
||||||
GB_RUN="True"
|
GB_RUN="True"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue