File: //opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/cluserextselect.cpython-37.pyc
B
���^K4 � @ sr d dl mZ d dl mZ d dl mZ d dlZddlmZ ddlmZ ddl m
Z
dd lmZ G d
d� dee�Z
dS )� )�absolute_import)�print_function)�divisionN� )�ClExtSelect)�ClUserSelect)�ClSelectExcept)�clprintc @ s� e Zd ZdZd#dd�Zd$dd�Zd%dd �Zd
d� Zdd
� Zdd� Z d&dd�Z
dd� Zdd� Zdd� Z
dd� Zdd� Zee�Zdd� Zee�Zdd � Zd!d"� ZdS )'�ClUserExtSelectzalt_php.ini�phpNc C s$ t �| ||� d | _g | _g | _d S )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 s zClUserExtSelect.__init__c C sP | � |� |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 �nativec S s | dfS )NTr )�ir r r �<lambda>( � z9ClUserExtSelect.list_enabled_extensions.<locals>.<lambda>)�_check_user_in_cagefs�get_versionr �UnableToGetExtensions�tuple�map�sorted�_get_enabled_extensions)r �user�versionr r r �list_enabled_extensions s
z'ClUserExtSelect.list_enabled_extensionsc C s� | � |� |dkr | �|�d }|dkr2t�|��| �||�}| �|�}g }x.t|�D ]"}d}||krjd}|�||f� qVW t|�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
Nr r FT) r r r r r �_get_all_extensionsr �appendr )r r r! Zuser_extensions�all_extensions�
extensions�ext�enabledr r r �list_all_extensions+ s
z#ClUserExtSelect.list_all_extensionsc C s t | j�dkr| �||� | jS )z�
Returns list of enabled user extensions
@param user: string
@param version: string
@return: list
r )�lenr �_load_user_extensions)r r r! r r r r B s z'ClUserExtSelect._get_enabled_extensionsc C s | j dkr| �|�| _ | j S )z�
Returns list of all extensions for a version
@param user: string
@param version: string
@return: list
N)r
�_load_extensions_list)r r! r r r r# M s
z#ClUserExtSelect._get_all_extensionsc C s2 | � |�}t|��t|��}|r.tj||d��dS )zi
validation extensions name
@param ext_list: list
@param version: string
)�ext_listr% N)r# �set�
differencer �NoSuchExtension)r r- r! r% Zbad_extensionsr r r �_check_extensionsX s
z!ClUserExtSelect._check_extensionsFc s: | � |� |r| j||d� | �||�}| �|�}| �|�\}}} t| �� �| }
| �|
�� t� |
� �}| �
|� � fdd�|| D �}g �xP|D ]H}tt�fdd�| �|g|| ���}
t�
||
|�}| �|� ��|
� q�W x �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! c s g | ]}|� kr|�qS r r )�.0r'