File size: 2,543 Bytes
1855ec1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/bash
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

export ENABLE_BACKGROUND_TASKS=1

echo "Setup completed successfully!"