Spaces:
Sleeping
Sleeping
set -euo pipefail | |
echo "Upgrading pip..." | |
pip install --upgrade pip || { | |
echo "Failed to upgrade pip" | |
exit 1 | |
} | |
echo "π§ Installing NVM..." | |
export NVM_DIR="$HOME/.nvm" | |
mkdir -p "$NVM_DIR" | |
# Download and install NVM | |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash || { | |
echo "Failed to download NVM installer" | |
exit 1 | |
} | |
# Add NVM to bashrc for future sessions | |
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc | |
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc | |
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc | |
# Load NVM for current session | |
if [ -s "$NVM_DIR/nvm.sh" ]; then | |
\. "$NVM_DIR/nvm.sh" | |
echo "NVM loaded successfully" | |
else | |
echo "NVM script not found at $NVM_DIR/nvm.sh" | |
exit 1 | |
fi | |
# Verify NVM is available | |
if ! command -v nvm &> /dev/null; then | |
echo "NVM command not found after sourcing. Trying alternative approach..." | |
# Try to source it with bash explicitly | |
bash -c "source $NVM_DIR/nvm.sh && nvm --version" || { | |
echo "Failed to verify NVM installation" | |
exit 1 | |
} | |
fi | |
echo "π¦ Installing Node.js LTS..." | |
# Run nvm commands in a bash subshell to ensure proper environment | |
bash -c "source $NVM_DIR/nvm.sh && nvm install --lts" || { | |
echo "Failed to install Node.js" | |
exit 1 | |
} | |
# Run nvm use in a bash subshell | |
bash -c "source $NVM_DIR/nvm.sh && nvm use --lts" || { | |
echo "Failed to use Node.js LTS" | |
exit 1 | |
} | |
echo "π§° Installing latest npm..." | |
# Run npm in a bash subshell to ensure node is available | |
bash -c "source $NVM_DIR/nvm.sh && nvm use --lts && npm install -g npm@latest" || { | |
echo "Failed to update npm" | |
exit 1 | |
} | |
echo "β NVM, Node.js, and npm installed successfully." | |
if [ -f requirements.txt ]; then | |
echo "Installing requirements..." | |
pip install -r requirements.txt || { | |
echo "Failed to install requirements" | |
exit 1 | |
} | |
else | |
echo "No requirements.txt found, skipping package installation" | |
fi | |
echo "Setting up terminal prompt..." | |
cat << 'EOF' >> ~/.bashrc | |
# Function to get git branch | |
parse_git_branch() { | |
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' | |
} | |
# Color definitions | |
BLUE='\[\033[34m\]' | |
GREEN='\[\033[32m\]' | |
YELLOW='\[\033[33m\]' | |
RESET='\[\033[00m\]' | |
# Set prompt with current directory and git branch | |
export PS1="${BLUE}\W${RESET}${YELLOW}\$(parse_git_branch)${RESET}${GREEN} $ ${RESET}" | |
EOF | |
echo "Setup completed successfully!" |