%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/manager/
Upload File :
Create Path :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/xray/manager/__init__.py

# -*- coding: utf-8 -*-

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

import os
from .base import BaseManager
from .cpanel import CPanelManager
from .custom import CustomManager
from .directadmin import DirectAdminManager
from .plesk import PleskManager
from ..internal.utils import read_jwt_token


def initialize_manager(system_id: str) -> 'Manager instance':
    """
    Factory function for appropriate manager initialization
    :return: appropriate manager instance
    """
    # check validity of JWT token as early as possible
    read_jwt_token()
    if os.path.isfile('/usr/local/cpanel/cpanel'):
        m = CPanelManager
    elif os.path.isfile('/usr/local/psa/version'):
        m = PleskManager
    elif os.path.isdir('/usr/local/directadmin') and os.path.isfile(
            '/usr/local/directadmin/custombuild/build'):
        m = DirectAdminManager
    else:
        m = CustomManager

    is_phpinfo_mode = os.path.exists('/opt/cloudlinux/flags/enabled-flags.d/'
                                     'xray-per-domain-php-version-mode.flag')
    return m(system_id, phpinfo_mode=is_phpinfo_mode)

Zerion Mini Shell 1.0