HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/clwizard/modules/__pycache__/nodejs.cpython-37.pyc
B

k��x�T?��@s�ddlmZddlZddlmZmZddlmZddlm	Z	m
Z
ddlmZm
Z
ddlmZmZddlmZdd	lmZGd
d�de�ZdS)�)�absolute_importN)�Dict�Iterable)�Feature)�ExternalProgramFailed�get_passenger_package_name)�CL_SELECTOR_BIN�MODULES_LOGS_DIR)�InstallationFailedException�PackageMissingError)�WizardInstaller)�installed_interpreters_listc@speZdZej�ed�Zej	Z
dd�Zdd�Zdd�Z
dd	�Zed
d��Zedd
��Zdd�Zdd�Zdd�ZdS)�NodejsInstallerz
nodejs.logc
CsZ|j�d|�y|�tdddd|dg�Wn*tk
rT}zt�|�Wdd}~XYnXdS)Nz,trying to set default NodeJS version as '%s'�setz
--interpreter�nodejsz--default-versionz--json)�
app_logger�info�_run_commandrrr
)�self�version�e�r�py/clwizard/modules/nodejs.py�_set_default_nodejs_versionsz+NodejsInstaller._set_default_nodejs_versionc
CsZ|j�d|�y|�tdddd|dg�Wn*tk
rT}zt�|�Wdd}~XYnXdS)Nz(trying to set NodeJS Selector state '%s'rz
--interpreterrz--selector-statusz--json)rrrrrr
)r�statusrrrr�_set_cloudlinux_selector_status,sz/NodejsInstaller._set_cloudlinux_selector_statusc
Cs`|j�dd�|��dd�|D�}y|j|�Wn*tk
rZ}zt�|�Wdd}~XYnXdS)Nz%Trying to install NodeJS versions: %sz, cSsg|]}d|�qS)z
alt-nodejsr)�.0rrrr�
<listcomp>Bsz<NodejsInstaller._install_nodejs_versions.<locals>.<listcomp>)rr�joinZ_install_groupsrr
)r�versionsZgroup_namesrrrr�_install_nodejs_versions>sz(NodejsInstaller._install_nodejs_versionscCsf|�d�}|�dg�}|r6||kr6|j�d|�t��|��|�|�|jdd�|rb|�|�dS)N�default_versionrzWVersion %s that was specified to be set as default must be included in install_versionsZenabled)r)�getr�errorr
Z_install_passengerr rr)r�optionsr!Zinstall_versionsrrr�run_installationHs

z NodejsInstaller.run_installationcCsddhS)Nr!rr)�clsrrr�supported_options[sz!NodejsInstaller.supported_optionsc
CsFyddlm}Wn,tk
r<}ztd�|�Wdd}~XYnX|d�S)Nr)�get_default_versionZ
lvemanagerr)Zclselect.clselectctlr(�ImportErrorr)r(rrrr�_nodejs_get_default_version_s
z+NodejsInstaller._nodejs_get_default_versioncCs.ttdd�td�D��o*|�t��o*|���S)a
        Checks that nodejs selector is ready to work
        All configurations were done:
        - At least one interpreter version is installed
        - Passenger is installed
        - Nodejs selector is enabled
        :return: bool value configured or not
        css|]}|jVqdS)N)�	installed)r�itrrr�	<genexpr>ssz9NodejsInstaller._is_already_configured.<locals>.<genexpr>r)�bool�anyr
Z_is_package_installedr�_is_nodejs_selector_enabled)rrrr�_is_already_configuredhs
z&NodejsInstaller._is_already_configuredcCs6td�}dd�|D�}|��|��||�d�d�d�S)z�
        Return dictionary with two required keys: installed and options.
        This will be used by lvemanager UI to properly display wizard.
        rcSsg|]}|jr|j�qSr)r+r)rr,rrrrsz2NodejsInstaller.initial_status.<locals>.<listcomp>)r!�installed_versionsZavailable_versions)Zalready_configuredr$)r
r1r*Z_get_available_versions)rZinterpreters_listr2rrr�initial_statusxszNodejsInstaller.initial_statuscCsB|j�d�yddlm}|d���dStk
r<dSXdS)zN
        Return True if Nodejs Selector enabled
        :return: bool
        z$trying to get NodeJS Selector state.r)�CloudlinuxSelectorLibrZselector_enabledFN)rrZclselector.selectorlibr4Zget_nodejs_selector_statusr))rr4rrrr0�sz+NodejsInstaller._is_nodejs_selector_enabledN)�__name__�
__module__�__qualname__�os�pathrr	ZLOG_FILErZNODEJS_SELECTORZ_REQUIRED_CL_COMPONENT_SUPPORTrrr r%�classmethodr'�staticmethodr*r1r3r0rrrrrs
	r)Z
__future__rr8�typingrrZclcommon.constrZclcommon.utilsrrZclwizard.constantsrr	Zclwizard.exceptionsr
rZclwizard.modules.baserZclwizard.utilsr
rrrrr�<module>	s