|
1 |
| -#!/bin/bash |
2 |
| -# Check Node.js version |
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +# Node.js version check |
3 | 4 | REQUIRED_NODE_VERSION=22
|
4 | 5 | CURRENT_NODE_VERSION=$(node -v | cut -d'.' -f1 | sed 's/v//')
|
5 | 6 |
|
6 |
| -if (( CURRENT_NODE_VERSION < REQUIRED_NODE_VERSION && CURRENT_NODE_VERSION < 23 )); then |
7 |
| - echo "Error: Node.js version must be $REQUIRED_NODE_VERSION or 23 or higher. Current version is $CURRENT_NODE_VERSION." |
| 7 | +# Compare Node versions |
| 8 | +if [ "$(expr "$CURRENT_NODE_VERSION" \< "$REQUIRED_NODE_VERSION")" -eq 1 ]; then |
| 9 | + echo "\033[1;31mError: Node.js version must be $REQUIRED_NODE_VERSION or higher. Current version is $CURRENT_NODE_VERSION.\033[0m" |
| 10 | + exit 1 |
| 11 | +fi |
| 12 | + |
| 13 | +# Check if pnpm is installed |
| 14 | +if ! command -v pnpm >/dev/null 2>&1; then |
| 15 | + echo "\033[1;31mError: pnpm is not installed. Please install pnpm before running the script.\033[0m" |
8 | 16 | exit 1
|
9 | 17 | fi
|
10 | 18 |
|
11 | 19 | # Navigate to project root
|
12 |
| -cd "$(dirname "$0")"/.. |
| 20 | +cd "$(dirname "$0")"/.. || exit 1 |
13 | 21 |
|
14 |
| -# clean cache |
15 |
| -echo -e "\033[1mCleaning cache...\033[0m" |
| 22 | +# Clean cache |
| 23 | +echo "\033[1mCleaning cache...\033[0m" |
16 | 24 | if ! pnpm clean; then
|
17 |
| - echo -e "\033[1;31mFailed to clean cache\033[0m" |
| 25 | + echo "\033[1;31mFailed to clean cache.\033[0m" |
18 | 26 | exit 1
|
19 | 27 | fi
|
20 | 28 |
|
21 |
| - |
22 | 29 | # Install dependencies
|
23 |
| -echo -e "\033[1mInstalling dependencies...\033[0m" |
24 |
| -if ! pnpm i ; then |
25 |
| - echo -e "\033[1;31mFailed to install dependencies\033[0m" |
| 30 | +echo "\033[1mInstalling dependencies...\033[0m" |
| 31 | +if ! pnpm install; then |
| 32 | + echo "\033[1;31mFailed to install dependencies.\033[0m" |
26 | 33 | exit 1
|
27 | 34 | fi
|
28 | 35 |
|
29 | 36 | # Build project
|
30 |
| -echo -e "\033[1mBuilding project...\033[0m" |
| 37 | +echo "\033[1mBuilding project...\033[0m" |
31 | 38 | if ! pnpm build; then
|
32 |
| - echo -e "\033[1;31mFailed to build project\033[0m" |
| 39 | + echo "\033[1;31mFailed to build project.\033[0m" |
33 | 40 | exit 1
|
34 | 41 | fi
|
35 | 42 |
|
36 | 43 | # Start project
|
37 |
| -echo -e "\033[1mStarting project...\033[0m" |
| 44 | +echo "\033[1mStarting project...\033[0m" |
38 | 45 | if ! pnpm start; then
|
39 |
| - echo -e "\033[1;31mFailed to start project\033[0m" |
| 46 | + echo "\033[1;31mFailed to start project.\033[0m" |
40 | 47 | exit 1
|
41 | 48 | fi
|
42 | 49 |
|
43 | 50 | # Start client
|
44 |
| -echo -e "\033[1mStarting client...\033[0m" |
45 |
| -pnpm start:client |
| 51 | +echo "\033[1mStarting client...\033[0m" |
| 52 | +if ! pnpm start:client; then |
| 53 | + echo "\033[1;31mFailed to start client.\033[0m" |
| 54 | + exit 1 |
| 55 | +fi |
46 | 56 |
|
47 | 57 | # Open webpage
|
48 |
| -echo -e "\033[1mOpening webpage...\033[0m" |
49 |
| -if command -v xdg-open &> /dev/null; then |
50 |
| - xdg-open http://localhost:5173 |
51 |
| -elif command -v open &> /dev/null; then |
52 |
| - open http://localhost:5173 |
| 58 | +echo "\033[1mOpening webpage at http://localhost:5173...\033[0m" |
| 59 | +if command -v xdg-open >/dev/null 2>&1; then |
| 60 | + xdg-open "http://localhost:5173" |
| 61 | +elif command -v open >/dev/null 2>&1; then |
| 62 | + open "http://localhost:5173" |
53 | 63 | else
|
54 |
| - echo -e "\033[1;33mPlease open http://localhost:5173 in your browser\033[0m" |
| 64 | + echo "\033[1;33mPlease open http://localhost:5173 in your browser.\033[0m" |
55 | 65 | fi
|
0 commit comments