| #!/bin/bash |
|
|
| |
| 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}" |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|
| |
| 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' |
|
|