File: //opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/clselect.cpython-37.pyc
B
���^�P � @ s� d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dlmZ d dlm Z d dl
mZ dd l
mZmZ dd
lmZ G dd� de�ZdS )
� )�absolute_import)�print_function)�divisionN)�glob)�map)�configparser� )�ClSelectExcept�BaseClSelectException)�clprintc @ sd e Zd ZdZdZdZdZdZdZdZ e d Z
e d Zed
d� �Z
edd
� �ZdLdd�Zdd� Zdd� Zdd� Zdd� Zdd� ZdMdd�Zdd� Zd d!� Zd"d#� Zd$d%� ZdNd&d'�Zd(d)� ZdOd+d,�Zd-d.� Zee�Zd/d0� Zee�Zd1d2� Zee�ZdPd4d5�Z d6d7� Z!d8d9� Z"d:d;� Z#d<d=� Z$dQd>d?�Z%dRd@dA�Z&dBdC� Z'dSdDdE�Z(dFdG� Z)dTdHdI�Z*dUdJdK�Z+d*S )V�ClSelectz/etc/cl.selector/selector.confz/etc/cl.selector/defaults.cfgz/usr/bin/phpz/etc/cl.selector/native.confz/etc/cl.selector/user.confz"/etc/cl.selector/php.extensions.d/z/var/lvez
/php%s.datz/php_native_ver.datc C s` y*dt jkrt j�d� ddlm} m} W n tk
rF td��Y nX | � s\|� s\td��d S )Nz/usr/share/cagefsr )�!multiphp_system_default_is_ea_php�selector_modules_must_be_usedzCageFS not installed.zesystem default PHP version is alt-php. PHP Selector is disabled. Use cPanel MultiPHP manager instead.)�sys�path�appendZ cagefsctlr
r �ImportErrorr
)r
r � r �B/opt/alt/python37/lib/python3.7/site-packages/clselect/clselect.py�%check_multiphp_system_default_version$ s
z.ClSelect.check_multiphp_system_default_versionc C s t j�tj�S )N)�osr �existsr � USER_CONFr r r r �work_without_cagefs0 s zClSelect.work_without_cagefs�phpc C s@ || _ | �� | _i | _i | _t� | _d | _t� � | _
| �� d S )N)�_item�_get_default_config_handler�_dh�_selector_contents�_native_contents�set�_hidden_extensions�_native_versionr r Zwithout_cagefs�_load_config_files)�self�itemr r r �__init__4 s
zClSelect.__init__c C s, x&t tj�| jd��D ]}| �|� qW d S )Nz*.cfg)r r r �join�CONFIGS_DIR�_load_config_file)r$ �filenamer r r r# ? s zClSelect._load_config_filesc
C s� t jd dd�}y|�|� W n: t jk
rV } ztj|dt|� d��W d d }~X Y nX y| j�|� dd��
d�� W n t jt jfk
r� Y nX d S )NF)�
interpolation�strictzConfig is malformed, error: %s)�message�
extensionsZhide_extensions�,)
�ConfigParserZSafeConfigParser�read�Errorr ZFileProcessError�strr! �update�get�split�NoSectionError�
NoOptionError)r$ �filepath�dh�er r r r) C s $zClSelect._load_config_filec C sl | � � }g }xVt|�� �D ]F}y*|�||| d || d | j f� W q tk
r^ wY qX qW t|�S )zM
Returns alternatives summary as tuple
:rtype: tuple
�version�data)�get_all_alternatives_data�sorted�keysr r �KeyError�tuple)r$ �alternativesZlist_of_alternativesZaltr r r �list_alternativesR s
zClSelect.list_alternativesc C s6 | j s0y| �� W n tjtjfk
r. i S X | j S )a�
Returns dict of all selector config contents.
If no data loads them
:return:
{'4.4': {'version': '4.4.9', 'data': {'lsphp': '/opt/alt/php44/usr/bin/lsphp',
'php.ini': '/opt/alt/php44/etc/php.ini',
'php': '/opt/alt/php44/usr/bin/php-cgi',
'php-cli': '/opt/alt/php44/usr/bin/php'}}}
:rtype: dict
)r �_load_alternatives_configr �ConfigNotFound�WrongConfigFormat)r$ r r r r>