Mini Shell
# -*- 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