Skip to content

Commit

Permalink
pre-requisite dependency version check added in dev.sh file
Browse files Browse the repository at this point in the history
  • Loading branch information
sahitya-chandra committed Oct 16, 2024
1 parent c4e20ae commit 7c835e8
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions dev.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,60 @@
#!/bin/bash

REQUIRED_NODE_VERSION=22.0.0
REQUIRED_YARN_VERSION=1.22.22
REQUIRED_DOCKER_VERSION=24.0.0

version_at_least() {
[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" == "$1" ]
}

check_versions() {
local node_version yarn_version docker_version
local errors=()

# Check Node.js version
if ! command -v node &> /dev/null; then
errors+=("Node.js is not installed. Please install Node.js v$REQUIRED_NODE_VERSION or higher.")
else
node_version=$(node -v | sed 's/v//')
if ! version_at_least "$node_version" "$REQUIRED_NODE_VERSION"; then
errors+=("Current Node.js version ($node_version) is incompatible. Please install v$REQUIRED_NODE_VERSION or higher.")
fi
fi

# Check Yarn version
if ! command -v yarn &> /dev/null; then
errors+=("Yarn is not installed. Please install Yarn v$REQUIRED_YARN_VERSION or higher.")
else
yarn_version=$(yarn -v)
if ! version_at_least "$yarn_version" "$REQUIRED_YARN_VERSION"; then
errors+=("Current Yarn version ($yarn_version) is incompatible. Please install v$REQUIRED_YARN_VERSION or higher.")
fi
fi

# Check Docker version
if ! command -v docker &> /dev/null; then
errors+=("Docker is not installed. Please install Docker v$REQUIRED_DOCKER_VERSION or higher.")
else
docker_version=$(docker --version | awk '{print $3}' | sed 's/,//')
if ! version_at_least "$docker_version" "$REQUIRED_DOCKER_VERSION"; then
errors+=("Current Docker version ($docker_version) is incompatible. Please install v$REQUIRED_DOCKER_VERSION or higher.")
fi
fi

# Display errors, if any
if [ ${#errors[@]} -ne 0 ]; then
for error in "${errors[@]}"; do
echo "$error"
done
exit 1
fi

echo "Node.js, Yarn, and Docker versions are compatible. Proceeding..."
}

check_versions

[ ! -f .env ] && cp env.example .env

check_internet_connection() {
Expand Down

0 comments on commit 7c835e8

Please sign in to comment.