Skip to content

Commit 8f07700

Browse files
committed
feat: Add bash version checking logic
1 parent 0d7a741 commit 8f07700

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

scripts/common.bash

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,34 @@ function load_env_vars() {
2626
fi
2727
}
2828

29+
# Check if Bash version meets the minimum requirement
30+
function check_bash_version() {
31+
local required_version=$1
32+
local bash_version
33+
bash_version=$(bash --version | head -n1 | awk '{print $4}' | sed 's/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/')
34+
35+
if [[ $bash_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
36+
local major=${BASH_REMATCH[1]}
37+
local minor=${BASH_REMATCH[2]}
38+
local patch=${BASH_REMATCH[3]}
39+
40+
IFS='.' read -r -a required_parts <<<"$required_version"
41+
local required_major=${required_parts[0]}
42+
local required_minor=${required_parts[1]}
43+
local required_patch=${required_parts[2]}
44+
45+
if ((major > required_major || (\
46+
major == required_major && minor > required_minor) || (\
47+
major == required_major && minor == required_minor && patch >= required_patch))); then
48+
return 0
49+
else
50+
return 1
51+
fi
52+
else
53+
return 1
54+
fi
55+
}
56+
2957
# Check if a command is installed
3058
function check_command() {
3159
local command="$1"

scripts/leetcode.bash

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@ function main() {
99
# Check if required commands are installed
1010
check_command "jq"
1111
check_command "bash"
12+
check_command "brew"
13+
14+
# Set the required Bash version
15+
local required_bash_version="4.0.0"
16+
17+
# Check Bash version and proceed with installation if necessary
18+
if check_bash_version "$required_bash_version"; then
19+
echo "Bash version meets the minimum requirement (>= $required_bash_version). Skipping installation."
20+
else
21+
echo "Bash version does not meet the minimum requirement (>= $required_bash_version). Proceeding with installation using Homebrew..."
22+
# Add your Homebrew installation commands here
23+
brew update
24+
brew install bash
25+
fi
1226

1327
# Check if the problem title-slug or URL is provided
1428
if [ "$#" -eq 1 ]; then

0 commit comments

Comments
 (0)