From a2a079510c0a9f5cd0471b37fbca206fbf42bc90 Mon Sep 17 00:00:00 2001 From: Shakker Nerd Date: Tue, 17 Dec 2024 09:06:49 +0000 Subject: [PATCH] feat: make script dash compatible --- scripts/start.sh | 58 ++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index 86a51a6323..f3a817a27e 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,55 +1,65 @@ -#!/bin/bash -# Check Node.js version +#!/bin/sh + +# Node.js version check REQUIRED_NODE_VERSION=22 CURRENT_NODE_VERSION=$(node -v | cut -d'.' -f1 | sed 's/v//') -if (( CURRENT_NODE_VERSION < REQUIRED_NODE_VERSION && CURRENT_NODE_VERSION < 23 )); then - echo "Error: Node.js version must be $REQUIRED_NODE_VERSION or 23 or higher. Current version is $CURRENT_NODE_VERSION." +# Compare Node versions +if [ "$(expr "$CURRENT_NODE_VERSION" \< "$REQUIRED_NODE_VERSION")" -eq 1 ]; then + echo "\033[1;31mError: Node.js version must be $REQUIRED_NODE_VERSION or higher. Current version is $CURRENT_NODE_VERSION.\033[0m" + exit 1 +fi + +# Check if pnpm is installed +if ! command -v pnpm >/dev/null 2>&1; then + echo "\033[1;31mError: pnpm is not installed. Please install pnpm before running the script.\033[0m" exit 1 fi # Navigate to project root -cd "$(dirname "$0")"/.. +cd "$(dirname "$0")"/.. || exit 1 -# clean cache -echo -e "\033[1mCleaning cache...\033[0m" +# Clean cache +echo "\033[1mCleaning cache...\033[0m" if ! pnpm clean; then - echo -e "\033[1;31mFailed to clean cache\033[0m" + echo "\033[1;31mFailed to clean cache.\033[0m" exit 1 fi - # Install dependencies -echo -e "\033[1mInstalling dependencies...\033[0m" -if ! pnpm i ; then - echo -e "\033[1;31mFailed to install dependencies\033[0m" +echo "\033[1mInstalling dependencies...\033[0m" +if ! pnpm install; then + echo "\033[1;31mFailed to install dependencies.\033[0m" exit 1 fi # Build project -echo -e "\033[1mBuilding project...\033[0m" +echo "\033[1mBuilding project...\033[0m" if ! pnpm build; then - echo -e "\033[1;31mFailed to build project\033[0m" + echo "\033[1;31mFailed to build project.\033[0m" exit 1 fi # Start project -echo -e "\033[1mStarting project...\033[0m" +echo "\033[1mStarting project...\033[0m" if ! pnpm start; then - echo -e "\033[1;31mFailed to start project\033[0m" + echo "\033[1;31mFailed to start project.\033[0m" exit 1 fi # Start client -echo -e "\033[1mStarting client...\033[0m" -pnpm start:client +echo "\033[1mStarting client...\033[0m" +if ! pnpm start:client; then + echo "\033[1;31mFailed to start client.\033[0m" + exit 1 +fi # Open webpage -echo -e "\033[1mOpening webpage...\033[0m" -if command -v xdg-open &> /dev/null; then - xdg-open http://localhost:5173 -elif command -v open &> /dev/null; then - open http://localhost:5173 +echo "\033[1mOpening webpage at http://localhost:5173...\033[0m" +if command -v xdg-open >/dev/null 2>&1; then + xdg-open "http://localhost:5173" +elif command -v open >/dev/null 2>&1; then + open "http://localhost:5173" else - echo -e "\033[1;33mPlease open http://localhost:5173 in your browser\033[0m" + echo "\033[1;33mPlease open http://localhost:5173 in your browser.\033[0m" fi