22
33# Get the script's directory (ensures correct paths)
44SCRIPT_DIR=" $( cd " $( dirname " $0 " ) " && pwd) "
5- cd " $SCRIPT_DIR "
5+ cd " $SCRIPT_DIR " || exit 1
66
7- # Install NVM
8- echo " Installing NVM..."
9- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
7+ # Install NVM if not installed
8+ if ! command -v nvm & > /dev/null; then
9+ echo " Installing NVM..."
10+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
1011
11- # Load NVM
12- export NVM_DIR=" $HOME /.nvm"
13- [ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh"
12+ export NVM_DIR=" $HOME /.nvm"
13+ [ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh"
14+ [ -s " $NVM_DIR /bash_completion" ] && \. " $NVM_DIR /bash_completion"
15+ else
16+ export NVM_DIR=" $HOME /.nvm"
17+ [ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh"
18+ fi
1419
15- # Install and use Node.js 21
16- echo " Installing and using Node.js 21..."
17- nvm install 21
20+ # Ensure Node.js 21 is installed and used
21+ NODE_VERSION=$( node -v 2> /dev/null)
22+ if [[ " $NODE_VERSION " != v21.* ]]; then
23+ echo " Installing and using Node.js 21..."
24+ nvm install 21
25+ fi
1826nvm use 21
1927
20- Setup CLI first
28+ Setup CLI
2129echo " Setting up CLI repo..."
22- cd " $SCRIPT_DIR /cli" && npm run setup-repo
23- cd " $SCRIPT_DIR "
30+ cd " $SCRIPT_DIR /cli" || exit 1
31+
32+ # Check if current user can write to node_modules
33+ if [ -w node_modules ] || [ ! -d node_modules ]; then
34+ npm run setup-repo --force
35+ else
36+ echo " Permission issue detected. Trying with sudo..."
37+ sudo npm run setup-repo --force
38+ fi
2439
25- # Open new terminals for other services
40+ # Return to script root
41+ cd " $SCRIPT_DIR " || exit 1
42+
43+ # Fix npm cache permissions
44+ echo " Fixing npm cache permissions..."
45+ sudo chown -R $( id -u) :$( id -g) " $HOME /.npm"
46+
47+ # Start With Env File
48+ echo " Creating .env file..."
49+ npm run create:env
50+
51+ # Start services in new terminals
2652echo " Starting services in new terminals..."
2753
28- # macOS (Using AppleScript)
2954if [[ " $OSTYPE " == " darwin" * ]]; then
30- osascript -e " tell application \" Terminal\" to do script \" cd '$SCRIPT_DIR /api' && npm i && npm run dev\" "
31- osascript -e " tell application \" Terminal\" to do script \" cd '$SCRIPT_DIR /upload-api' && npm i && npm run start\" "
32- osascript -e " tell application \" Terminal\" to do script \" cd '$SCRIPT_DIR /ui' && npm i && npm run start\" "
33-
34- # Linux (Using GNOME Terminal)
55+ # macOS
56+ osascript -e " tell application \" Terminal\" to do script \"
57+ source \$ HOME/.nvm/nvm.sh && nvm use 21 &&
58+ cd '$SCRIPT_DIR /api' &&
59+ echo 'Cleaning API dependencies...' &&
60+ rm -rf node_modules package-lock.json &&
61+ npm install &&
62+ npm run dev
63+ \" "
64+ osascript -e " tell application \" Terminal\" to do script \"
65+ source \$ HOME/.nvm/nvm.sh && nvm use 21 &&
66+ cd '$SCRIPT_DIR /upload-api' &&
67+ echo 'Cleaning upload-api dependencies...' &&
68+ rm -rf node_modules package-lock.json &&
69+ rm -rf migration-sitecore/node_modules migration-sitecore/package-lock.json &&
70+ npm install &&
71+ npm run start
72+ \" "
73+ osascript -e " tell application \" Terminal\" to do script \"
74+ source \$ HOME/.nvm/nvm.sh && nvm use 21 &&
75+ cd '$SCRIPT_DIR /ui' &&
76+ echo 'Cleaning UI dependencies...' &&
77+ rm -rf node_modules package-lock.json &&
78+ npm install &&
79+ npm run start
80+ \" "
81+
3582elif [[ " $OSTYPE " == " linux-gnu" * ]]; then
36- gnome-terminal -- bash -c " cd '$SCRIPT_DIR /api' && npm run dev; exec bash"
37- gnome-terminal -- bash -c " cd '$SCRIPT_DIR /upload-api' && npm run start; exec bash"
38- gnome-terminal -- bash -c " cd '$SCRIPT_DIR /ui' && npm run start; exec bash"
83+ # Linux (GNOME Terminal)
84+ gnome-terminal -- bash -c " source $HOME /.nvm/nvm.sh && nvm use 21 && cd '$SCRIPT_DIR /api' && npm install && npm run dev; exec bash"
85+ gnome-terminal -- bash -c " source $HOME /.nvm/nvm.sh && nvm use 21 && cd '$SCRIPT_DIR /upload-api' && npm install && npm run start; exec bash"
86+ gnome-terminal -- bash -c " source $HOME /.nvm/nvm.sh && nvm use 21 && cd '$SCRIPT_DIR /ui' && npm install && npm run start; exec bash"
87+ else
88+ echo " Unsupported OS: $OSTYPE "
89+ exit 1
3990fi
4091
41- echo " All services started!"
92+ echo " All services started!"
0 commit comments