|
|
# Copyright (C) 2010-2024 RhodeCode GmbH
|
|
|
#
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
|
# it under the terms of the GNU Affero General Public License, version 3
|
|
|
# (only), as published by the Free Software Foundation.
|
|
|
#
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
# GNU General Public License for more details.
|
|
|
#
|
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
#
|
|
|
# This program is dual-licensed. If you wish to learn more about the
|
|
|
# RhodeCode Enterprise Edition, including its added features, Support services,
|
|
|
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
|
|
|
|
|
import os
|
|
|
import datetime
|
|
|
import collections
|
|
|
import logging
|
|
|
|
|
|
|
|
|
now = datetime.datetime.now()
|
|
|
now = now.strftime("%Y-%m-%d %H:%M:%S") + '.' + f"{int(now.microsecond/1000):03d}"
|
|
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
log.debug(f'{now} Starting RhodeCode imports...')
|
|
|
|
|
|
|
|
|
VERSION = tuple(open(os.path.join(
|
|
|
os.path.dirname(__file__), 'VERSION')).read().strip().split('.'))
|
|
|
|
|
|
BACKENDS = collections.OrderedDict()
|
|
|
|
|
|
BACKENDS['hg'] = 'Mercurial repository'
|
|
|
BACKENDS['git'] = 'Git repository'
|
|
|
BACKENDS['svn'] = 'Subversion repository'
|
|
|
|
|
|
|
|
|
CELERY_ENABLED = False
|
|
|
CELERY_EAGER = False
|
|
|
|
|
|
# link to config for pyramid
|
|
|
CONFIG = {}
|
|
|
|
|
|
class NotGivenMeta:
|
|
|
|
|
|
def __repr__(self):
|
|
|
return 'NotGivenObject()'
|
|
|
__str__ = __repr__
|
|
|
|
|
|
NotGiven = NotGivenMeta()
|
|
|
|
|
|
class ConfigGet:
|
|
|
|
|
|
@classmethod
|
|
|
def _get_val_or_missing(cls, key, missing):
|
|
|
if key not in CONFIG:
|
|
|
if missing != NotGiven:
|
|
|
return missing
|
|
|
# we don't get key, we don't get missing value, return nothing similar as config.get(key)
|
|
|
return None
|
|
|
else:
|
|
|
val = CONFIG[key]
|
|
|
return val
|
|
|
|
|
|
def get_str(self, key, missing=NotGiven):
|
|
|
from rhodecode.lib.str_utils import safe_str
|
|
|
val = self._get_val_or_missing(key, missing)
|
|
|
return safe_str(val)
|
|
|
|
|
|
def get_int(self, key, missing=NotGiven):
|
|
|
from rhodecode.lib.str_utils import safe_int
|
|
|
val = self._get_val_or_missing(key, missing)
|
|
|
return safe_int(val)
|
|
|
|
|
|
def get_bool(self, key, missing=NotGiven):
|
|
|
from rhodecode.lib.type_utils import str2bool
|
|
|
val = self._get_val_or_missing(key, missing)
|
|
|
return str2bool(val)
|
|
|
|
|
|
def get_list(self, key, missing=NotGiven):
|
|
|
from rhodecode.lib.type_utils import aslist
|
|
|
val = self._get_val_or_missing(key, missing)
|
|
|
return aslist(val, sep=',')
|
|
|
|
|
|
|
|
|
# Populated with the settings dictionary from application init in
|
|
|
# rhodecode.conf.environment.load_pyramid_environment
|
|
|
PYRAMID_SETTINGS = {}
|
|
|
|
|
|
# Linked module for extensions
|
|
|
EXTENSIONS = {}
|
|
|
|
|
|
__version__ = ('.'.join((str(each) for each in VERSION[:3])))
|
|
|
__dbversion__ = 115 # defines current db version for migrations
|
|
|
__license__ = 'AGPLv3, and Commercial License'
|
|
|
__author__ = 'RhodeCode GmbH'
|
|
|
__url__ = 'https://code.rhodecode.com'
|
|
|
|
|
|
is_test = os.getenv('RC_TEST', '0') == '1'
|
|
|
disable_error_handler = False
|
|
|
|