EOX GitLab Instance

Skip to content
Snippets Groups Projects
configure.sh 3.46 KiB
Newer Older
Nikola Jankovic's avatar
Nikola Jankovic committed
#!/bin/bash
{
    echo "Running configure.sh"

    DEBUG=${DEBUG:="false"}
    # Configure instance
    sed -e "s/'disable_existing_loggers': True,/'disable_existing_loggers': False,/" -i pvs_instance/settings.py
    HANDLERS="'handlers': {\n
        'null': {\n
            'level':'DEBUG',\n
            'class':'logging.NullHandler',\n
        },\n
        'console': {\n
            'level': 'DEBUG' if DEBUG else 'INFO',\n
            'class': 'logging.StreamHandler',\n
            'formatter': 'verbose' if DEBUG else 'simple',\n
            'filters': [],\n
        },\n
    },"
    LOGGERS="'loggers': {\n
        'eoxserver': {\n
            'handlers': ['console'],\n
            'level': 'DEBUG' if DEBUG else 'INFO',\n
            'propagate': False,\n
        },
    }"
    sed -e "/^    'handlers': {$/,/^    },$/c `echo ${HANDLERS}`" -i pvs_instance/settings.py
    sed -e "/^    'loggers': {$/,/^    }$/c `echo ${LOGGERS}`" -i pvs_instance/settings.py

    sed -e "s,http_service_url=http://localhost:8000/ows,http_service_url=${APACHE_ALIAS}/ows," -i pvs_instance/conf/eoxserver.conf
    sed -e "s/resampling_method=average/resampling_method=near/" -i pvs_instance/conf/eoxserver.conf
    sed -e "s/image\/jp2,GDAL\/JPEG2000/#image\/jp2,GDAL\/JPEG2000/" -i pvs_instance/conf/formats.conf
    # TODO maxsize...

    echo "EOXS_VALIDATE_IDS_NCNAME = False" >> pvs_instance/settings.py
    echo "EOXS_OPENSEARCH_RECORD_MODEL = 'eoxserver.resources.coverages.models.Product'" >> pvs_instance/settings.py
Nikola Jankovic's avatar
Nikola Jankovic committed
    echo "EOXS_LAYER_SUFFIX_SEPARATOR = '${EOXS_LAYER_SUFFIX_SEPARATOR}'" >> pvs_instance/settings.py
Nikola Jankovic's avatar
Nikola Jankovic committed

    echo "CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',
    }
    }" >> pvs_instance/settings.py

    sed -e "/TEMPLATE_DEBUG = DEBUG/d" -i pvs_instance/settings.py

    sed -e 's/DEBUG = True/DEBUG = False/' -i pvs_instance/settings.py

    # Further configuration
    echo "ALLOWED_HOSTS = ['*']" >> pvs_instance/settings.py
    echo "USE_X_FORWARDED_HOST = True" >> pvs_instance/settings.py
    echo "SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')" >> pvs_instance/settings.py
    if $DEV ; then
        # activate django cors plugin for dev environment to remove need for browser cors plugin
        sed -i "s/    'django.contrib.auth',/    'corsheaders', 'django.contrib.auth',/g" pvs_instance/settings.py
        sed -i "s/    'django.contrib.sessions.middleware.SessionMiddleware',/    'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',/g" pvs_instance/settings.py
        echo 'CORS_ORIGIN_ALLOW_ALL = True' >> pvs_instance/settings.py
    fi


    sed -e "s/SECRET_KEY = '.*'/SECRET_KEY = '${DJANGO_SECRET_KEY}'/" -i pvs_instance/settings.py
    chmod g+w -R .
    chgrp users -R .

    if [[ "$DEBUG" = true ]] ; then
        echo "DEBUG ON Setting functions"
        echo "MIDDLEWARE.append('pyinstrument.middleware.ProfilerMiddleware')" >> pvs_instance/settings.py
        sed -e 's/DEBUG = False/DEBUG = True/' -i pvs_instance/settings.py
        
        var="import os
import sys
import debugpy

def initialize_debugger():
    if not os.getenv('RUN_MAIN'):

        import debugpy
        debugpy.listen(('0.0.0.0', 5678))
"
        echo "$var" >> debug.py


        sed -i "/import sys/a from debug import initialize_debugger" manage.py
        sed -i '/execute_from_command_line(sys.argv)*/i \\    initialize_debugger()' manage.py


    fi

} 1>&2