#!/usr/bin/env python
# -*- coding: utf-8 -*-

###############################################################################
#  Copyright 2013 Kitware Inc.
#
#  Licensed under the Apache License, Version 2.0 ( the "License" );
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
###############################################################################

import cherrypy
from girder import constants
import os
import re


def loadConfig():
    baseCfgs = [os.path.join(constants.ROOT_DIR, 'girder', 'conf',
                             '{}.cfg'.format(c)) for c in constants.CONFIGS]
    for cfg in baseCfgs:
        cherrypy.config.update(cfg)

    cfgs = [os.path.join(constants.ROOT_DIR, 'girder', 'conf',
                         'local.%s.cfg' % c) for c in constants.CONFIGS]
    for cfg in cfgs:
        cherrypy.config.update(cfg)

    # The PORT environment variable will override the config port
    cherrypy.config.update(
        {'server.socket_port': int(os.environ.get('PORT', '8080'))})

    # The MONGOLAB_URI should override the database config
    if os.getenv('MONGOLAB_URI'):  # for Heroku
        matcher = re.match(r"mongodb://(.+):(.+)@(.+):(.+)/(.+)",
                           os.getenv('MONGOLAB_URI'))
        res = {'user': matcher.group(1),
               'password': matcher.group(2),
               'host': matcher.group(3),
               'port': int(matcher.group(4)),
               'database': matcher.group(5)}
        cherrypy.config['database'] = res


def getConfig():
    if 'database' not in cherrypy.config:
        loadConfig()
    return cherrypy.config

#!/usr/bin/env python
# -*- coding: utf-8 -*-

###############################################################################
#  Copyright 2013 Kitware Inc.
#
#  Licensed under the Apache License, Version 2.0 ( the "License" );
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
###############################################################################

import cherrypy
from girder import constants
import os
import re


def loadConfig():
    baseCfgs = [os.path.join(constants.ROOT_DIR, 'girder', 'conf',
                             '{}.cfg'.format(c)) for c in constants.CONFIGS]
    for cfg in baseCfgs:
        cherrypy.config.update(cfg)

    cfgs = [os.path.join(constants.ROOT_DIR, 'girder', 'conf',
                         'local.%s.cfg' % c) for c in constants.CONFIGS]
    for cfg in cfgs:
        cherrypy.config.update(cfg)

    # The PORT environment variable will override the config port
    cherrypy.config.update(
        {'server.socket_port':
         int(os.environ.get('PORT',
                            cherrypy.config['server.socket_port']))})

    # The MONGOLAB_URI should override the database config
    if os.getenv('MONGOLAB_URI'):  # for Heroku
        matcher = re.match(r"mongodb://(.+):(.+)@(.+):(.+)/(.+)",
                           os.getenv('MONGOLAB_URI'))
        res = {'user': matcher.group(1),
               'password': matcher.group(2),
               'host': matcher.group(3),
               'port': int(matcher.group(4)),
               'database': matcher.group(5)}
        cherrypy.config['database'] = res


def getConfig():
    if 'database' not in cherrypy.config:
        loadConfig()
    return cherrypy.config

Use the config default instead of 8080 as the port.