File size: 2,091 Bytes
e12cd0f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/bin/bash

# Check for Python3 and validate version
if ! command -v python3 &>/dev/null; then
    echo '[ERROR] python3 is not installed.' >&2
    exit 1
fi

python_version=$(python3 --version 2>&1 | awk '{print $2}')
py_major=${python_version%%.*}
py_minor=${python_version#*.}
py_minor=${py_minor%%.*}

if [[ "$py_major" -ne 3 || "$py_minor" -lt 10 || "$py_minor" -gt 12 ]]; then
    echo "[ERROR] MobSF dependencies require Python 3.10 - 3.12. You have Python ${python_version}."
    exit 1
fi
echo "[INSTALL] Found Python ${python_version}"

# Check and upgrade pip
if python3 -m pip -V &>/dev/null; then
    echo '[INSTALL] Found pip'
    upgrade_cmd="python3 -m pip install --no-cache-dir --upgrade pip"
    [[ "$(uname)" != "Darwin" ]] && upgrade_cmd+=" --user"
    eval $upgrade_cmd
else
    echo '[ERROR] python3-pip not installed'
    exit 1
fi

# macOS-specific Xcode CLI tools check
if [[ "$(uname)" == "Darwin" ]]; then
    if ! xcode-select -v &>/dev/null; then
        echo 'Please install command-line tools with: xcode-select --install'
        exit 1
    fi
    echo '[INSTALL] Found Xcode'
fi

# Install dependencies and set up the environment
echo '[INSTALL] Installing Requirements'
python3 -m pip install --no-cache-dir wheel poetry==1.8.4
python3 -m poetry lock
python3 -m poetry install --no-root --only main --no-interaction --no-ansi

echo '[INSTALL] Clean Up'
bash scripts/clean.sh y

# Database setup and superuser creation
echo '[INSTALL] Migrating Database'
export DJANGO_SUPERUSER_USERNAME=mobsf
export DJANGO_SUPERUSER_PASSWORD=mobsf
python3 -m poetry run python manage.py makemigrations
python3 -m poetry run python manage.py makemigrations StaticAnalyzer
python3 -m poetry run python manage.py migrate
python3 -m poetry run python manage.py createsuperuser --noinput --email ""
python3 -m poetry run python manage.py create_roles

# Check for wkhtmltopdf
if ! command -v wkhtmltopdf &>/dev/null; then
    echo 'Download and Install wkhtmltopdf for PDF Report Generation - https://wkhtmltopdf.org/downloads.html'
fi

echo '[INSTALL] Installation Complete'