%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/cluserextselect.cpython-37.pyc

B

��UbR8�@srddlmZddlmZddlmZddlZddlmZddlmZddl	m
Z
dd	lmZGd
d�dee�Z
dS)�)�absolute_import)�print_function)�divisionN�)�ClExtSelect)�ClUserSelect)�ClSelectExcept)�clprintc@s�eZdZdZd+dd�Zd,dd�Zd-dd	�Zd
d�Zdd
�Zdd�Z	d.dd�Z
dd�Zd/dd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zee�Zed%d&��Zd'd(�Zd)d*�ZdS)0�ClUserExtSelectzalt_php.ini�phpNcCs$t�|||�d|_g|_g|_dS)N)r�__init__�_alt_extensions�_user_extensions�
_conflicts)�self�item�exclude_pid_list�r�I/opt/alt/python37/lib/python3.7/site-packages/clselect/cluserextselect.pyrszClUserExtSelect.__init__cCsP|�|�|dkr |�|�d}|dkr2t�|��ttdd�t|�||����S)z�
        Returns enabled user extensions for a version as a tuple
        @param user: string
        @param version: string
        @return: tuple
        Nr�nativecSs|dfS)NTr)�irrr�<lambda>(�z9ClUserExtSelect.list_enabled_extensions.<locals>.<lambda>)�_check_user_in_cagefs�get_versionr�UnableToGetExtensions�tuple�map�sorted�_get_enabled_extensions)r�user�versionrrr�list_enabled_extensionss


z'ClUserExtSelect.list_enabled_extensionscCs�|�|�|dkr |�|�d}|dkr2t�|��|�||�}|�|�}g}x.t|�D]"}d}||krjd}|�||f�qVWt|�S)z�
        Returns as a tuple all user extensions for a version,
        marking enabled and disabled ones
        @param user: string
        @param version: string
        @return: tuple
        NrrFT)	rrrrr�_get_all_extensionsr�appendr)rr r!Zuser_extensions�all_extensions�
extensions�ext�enabledrrr�list_all_extensions+s


z#ClUserExtSelect.list_all_extensionscCs t|j�dkr|�||�|jS)z�
        Returns list of enabled user extensions
        @param user: string
        @param version: string
        @return: list
        r)�lenr�_load_user_extensions)rr r!rrrrBsz'ClUserExtSelect._get_enabled_extensionscCs|jdkr|�|�|_|jS)z�
        Returns list of all extensions for a version
        @param user: string
        @param version: string
        @return: list
        N)r
�_load_extensions_list)rr!rrrr#Ms
z#ClUserExtSelect._get_all_extensionscCs2|�|�}t|��t|��}|r.tj||d��dS)zi
        validation extensions name
        @param ext_list: list
        @param version: string
        )�ext_listr%N)r#�set�
differencer�NoSuchExtension)rr-r!r%Zbad_extensionsrrr�_check_extensionsXs
z!ClUserExtSelect._check_extensionsFcCs|j||j|||d�S)N)�	check_ext)�bulk_handle_extensions�enable_extensions)rr r!r-r2rrr�bulk_enable_extensionscsz&ClUserExtSelect.bulk_enable_extensionscOs:|j�|�}d}x$|j�|�D]}||f|�|�}qW|S)N)�_clpwd�get_uid�	get_names)rr �func�args�kwargs�uid�resultZ
user_aliasrrrr3fs
z&ClUserExtSelect.bulk_handle_extensionsc	s:|�|�|r|j||d�|�||�}|�|�}|�|�\}}}	t|	���|}
|�|
��t�	|
��}|�
|��fdd�||D�}g�xP|D]H}tt�fdd�|�|g||	���}
t�
||
|�}|�|���|
�q�Wx �D]}|�|�|	|��q�W|�|�}|�|d�|�d|�|�|�|�|�dS)z�
        Adds extensions to user php.ini
        @param user: string
        @param version: string
        @param ext_list: list
        @param check_ext: bool
        @return: None
        )r-r!csg|]}|�kr|�qSrr)�.0r')�ext_datarr�
<listcomp>�sz5ClUserExtSelect.enable_extensions.<locals>.<listcomp>cs|�kS)Nr)r)�resolved_dependenciesrrr�rz3ClUserExtSelect.enable_extensions.<locals>.<lambda>�
N)rr1�_compose_user_ini_path�_compose_alt_path�_load_ini_contents�list�keys�_check_for_conflictsr�get_conflicts_info�_print_conflicts_info�filter�_include_dependencies�get_dependencies_list�_print_dependencies_info�extend�_smooth_data�_move_ioncube_ext�_write_to_file�join�_backup_settings�_reload_processes)rr r!r-r2�
user_ini_path�alt_path�contentsr&�extensions_dataZresulting_extensionsZ_conflicts_infor'�resolvedZdependence_infor)r?rArr4ms6	








z!ClUserExtSelect.enable_extensionscCs|�||j||�S)N)r3�#replace_extensions_with_dependenses)rr r!r-rrr�bulk_replace_extensions�sz'ClUserExtSelect.bulk_replace_extensionscCs,|�|||�\}}}|�|�|�|�|S)a
        (deprecated)
        Replaces extensions in user php.ini with supplied ones
        and print information about dependences and conflicts for old php selector
        @param user: string
        @param version: string
        @param ext_list: list
        @return: list
        )r\rNrJ)rr r!r-Zextensions_list�dependencies_list�conflict_dependenciesrrr�replace_extensions�s

z"ClUserExtSelect.replace_extensionsc
	s|�|�g�g}g}|�||�}|�|�}|�|�\}}	}
i}
|�|��t�|��}�fdd�|D�}	xJ|	D]B}tt�fdd�|�	|g||
���}||�
|||�}��|�qnWx �D]}|�|�|
|��q�W|�
|�}|�|d�|�d|�|�|�|�|�t|
���||fS)a
        Replaces extensions in user php.ini with supplied ones
        @param user: string
        @param version: string
        @param ext_list: list
        @return: extensions_list, dependencies_list, conflict_dependencieslist: (list, list, list)
        csg|]}|�kr|�qSrr)r>r')r?rrr@�szGClUserExtSelect.replace_extensions_with_dependenses.<locals>.<listcomp>cs|�kS)Nr)r)rArrr�rzEClUserExtSelect.replace_extensions_with_dependenses.<locals>.<lambda>rB)rrCrDrErHrrIrFrKrLrMrOrPrQrRrSrTrUrG)
rr r!r-r^r]rVrWrXr&rYr'rZr)r?rArr[�s4







z3ClUserExtSelect.replace_extensions_with_dependensescCs|�||j||�S)N)r3�disable_extensions)rr r!r-rrr�bulk_disable_extensions�sz'ClUserExtSelect.bulk_disable_extensionscCs�|�|�|�||�}|�|�}|�|�\}}}xpt|�D]d}	|	|krHq:t|����|	g�}
|�|	|
|�r�|
�t|��s�t	�
ddd|	fd��q:|�|	d�q:Wx*|D]"}||kr�q�|�|�
||��q�W|�|d�|�d|�|�|�|�|�dS)z�
        Removes extensions from user php.ini
        @param user: string
        @param version: string
        @param ext_list: list
        @return: None
        �text�WARNz%s left as dependency)�status�messageNrB)rrCrDrEr.rGr/�_is_dependency�issubsetr	�
print_diag�poprOrPrRrSrTrU)rr r!r-rVrWrXr&rYrZrest_of_setr'rrrr`�s4



z"ClUserExtSelect.disable_extensionscCs,|st�d��t�||�}|�|||�}|S)z�
        Replaces extensions in user php.ini with default ones
        @param user: string
        @param version: string
        @return: list
        �Version)r�
EmptyParamrrr_)rr r!r-�datarrr�reset_extensions�s

z ClUserExtSelect.reset_extensionscCsld}g}g}xP|D]H}|�d�r0d}|�|�q|rP|�d�rDd}n|�|�q|�|�qW|�|�|S)z�
        PHP ioncube extensions must be at the beginning of extensions list
        @param contents: list
        @return: list
        Fz;---ioncubeTz;---)�
startswithr$rO)rX�foundZfixed_contentsZstripped_contentsrrrrrQ�s 





z!ClUserExtSelect._move_ioncube_extc
	Cs<g}g}i}d}d}d}�y�t|d�}x�|D]�}|��}|�d�rVd}d}|�|�q,|�d�r�|�d�}	|	dkrtq,|	}d}||kr�|g||<q,|r�|�d	�r�|�d
�s�q,|�|�|�d
�r�d}q,|r,|r,|�d	�s,|dkr�q,||kr�|�|�||kr,||�|�q,W|��Wnttfk
�r0YnX|||fS)zb
        Parses user ini file contents
        @param path: string
        @return: tuple
        FN�rz;>===Tz;---z;- ��;z;<===)�open�rstriprnr$�strip�close�OSError�IOError)
�pathrXr&rYZ
is_contentZis_extension�ext_name�ini�lineZtmp_ext_namerrrrEsN







z"ClUserExtSelect._load_ini_contentscCs&|�||�}|�|�}|j�|�dS)z�
        Loads user alternative extensions list for a version
        @param user: string
        @param version: string
        N)rC�_skim_over_extensionsrrO)rr r!rVr&rrrr+Us
z%ClUserExtSelect._load_user_extensionsc
Cs�|jr2|j�|�}d|�dd�}|d|dSt|j�|��}tj�|j	|dd�|dd	|j
fd
|j
|�dd�f|j�}|S)z�
        Composes user ini file path
        @param user: string
        @param version: string
        @return: string
        zphp%s�.rqz/.cl.selector/alt_z.ini���N�etczcl.%s.dzalt-%s%s)�without_cagefsr6�get_homedir�replace�strr7�osryrS�CAGEFS_PATH�_item�USER_INI)rr r!�homedirZphp_dirr<ryrrrrC_s


z&ClUserExtSelect._compose_user_ini_path)rN)N)N)F)F)�__name__�
__module__�__qualname__r�rr"r)rr#r1r5r3r4r\r_r[rar`rmrQ�staticmethodrEr+rCrrrrr
s*




%$$=
r
)�
__future__rrrr��clextselectr�cluserselectr�clselectexceptr�
clselectprintr	r
rrrr�<module>s

Zerion Mini Shell 1.0