HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/__pycache__/wpos_hooks.cpython-311.pyc
�

!�i���r�ddlZddlZddlmZddlmZddlmZmZm	Z	ddl
mZddlm
Z
mZddlmZdZd	Zd
ZdZdZd
ZdZdZdZefZefZdeddfd�Zdeddfd�Zdefd�Zd(d�Z d(d�Z!defd�Z"d(d�Z#d(d�Z$defd�Z%d(d�Z&d(d�Z'd(d�Z(d�Z)d(d �Z*d(d!�Z+d(d"�Z,d(d#�Z-d$�Z.d%�Z/d&�Z0e1d'kre0��dSdS))�N)�get_python_lib)�Path)�ALT_PHP_REDIS_ENABLE_UTILITY�INSTALL_CACHING_HOOKS_UTILITY�PHP_REDIS_ENABLE_UTILITY)�OBJECT_CACHE_FEATURE)�any_suite_allowed_on_server�is_module_allowed_for_user)�is_wpos_supportedz//etc/dnf/universal-hooks/multi_pkgs/transactionz-/etc/yum/universal-hooks/multi_pkgs/posttransz//etc/apt/universal-hooks/multi_pkgs/Post-Invokezalt-php__WILDCARD__-pecl-extzea-php__WILDCARD__zplesk-php__WILDCARD__z%/usr/share/cloudlinux/hooks/listenerszwpos_modify_user_hook.pyzwpos_user_dirs_hook.py�
target_binary�returnc���|��}|�dd���t|��j}t||��}|���s|�|��dSdS)zP
    Create hook dir and symlink the target binary if it doesn't exist yet.
    T)�parents�exist_okN)�mkdirr�name�exists�
symlink_to��
path_providerr�
hook_dir_path�	hook_name�hook_full_paths     �H/opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/wpos_hooks.py�_install_universal_hookr*s��"�M�O�O�M�����t��4�4�4��]�#�#�(�I��-��3�3�N�� � �"�"�1��!�!�-�0�0�0�0�0�1�1�c��|��}t|��j}t||��}|���r|���dSdS)z:
    Remove hook symlink if present (even if broken).
    N)rr�
is_symlink�unlinkrs     r�_uninstall_universal_hookr 6sd��"�M�O�O�M��]�#�#�(�I��-��3�3�N�� � �"�"� ��������� � rc��t}td�����rtt|��Std�����rtt|��Stt
|��S)zL
    Get path to yum universal hooks directory
    with alt-php* hooks.
    �	/etc/apt/�	/etc/dnf/)�ALT_HOOK_DIRNAMErr�UNIVERSAL_HOOK_PATH_APT�UNIVERSAL_HOOK_PATH_DNF�UNIVERSAL_HOOK_PATH_YUM��dir_names r�get_universal_hook_alt_php_pathr*Ast��
 �H��K�����!�!�7��+�X�6�6�6�	
�k�	�	�	!�	!�	#�	#�7��+�X�6�6�6��'��2�2�2rc�:�ttt��dS)zo
    Install yum universal hook for configuring PHP redis
    after alt-php* package is installed/updated.
    N)rr*r�rr�"install_yum_universal_hook_alt_phpr-Ns��
�;�=Y�Z�Z�Z�Z�Zrc�:�ttt��dS�zB
    Remove yum universal hook for configuring PHP redis ext.
    N)r r*rr,rr�$uninstall_yum_universal_hook_alt_phpr0Vs���=�?[�\�\�\�\�\rc��t}td�����rtt|��Std�����rtt|��Stt
|��S)zK
    Get path to yum universal hooks directory
    with ea-php* hooks.
    r"r#)�EA_HOOK_DIRNAMErrr%r&r'r(s r�get_universal_hook_ea_php_pathr3]st��
�H��K�����!�!�7��+�X�6�6�6�	
�k�	�	�	!�	!�	#�	#�7��+�X�6�6�6��'��2�2�2rc�:�ttt��dS)zn
    Install yum universal hook for configuring PHP redis
    after ea-php* package is installed/updated.
    N)rr3rr,rr�!install_yum_universal_hook_ea_phpr5js��
�:�<T�U�U�U�U�Urc�:�ttt��dSr/)r r3rr,rr�#uninstall_yum_universal_hook_ea_phpr7rs���<�>V�W�W�W�W�Wrc��t}td�����rtt|��Std�����rtt|��Stt
|��S)zN
    Get path to yum universal hooks directory
    with plesk-php* hooks.
    r"r#)�PLESK_HOOK_DIRNAMErrr%r&r'r(s r�!get_universal_hook_plesk_php_pathr:yst��
"�H��K�����!�!�7��+�X�6�6�6�	
�k�	�	�	!�	!�	#�	#�7��+�X�6�6�6��'��2�2�2rc�:�ttt��dS)zq
    Install yum universal hook for configuring PHP redis
    after plesk-php* package is installed/updated.
    N)rr:rr,rr�$install_yum_universal_hook_plesk_phpr<�s��
�=�?W�X�X�X�X�Xrc�:�ttt��dSr/)r r:rr,rr�&uninstall_yum_universal_hook_plesk_phpr>�s���?�AY�Z�Z�Z�Z�Zrc��tt��dd��}tt|��}t||��}dt|�����vs#dt|�����vr|���|���s+|���r|�|��dSdSdS)z
    Install single hook
    �clwpos�hooks�	lve_utilsz	python3.7N)rr�HOOKS_LISTENERS_DIR�str�resolverrr)�hook�lve_utils_hooks_dir�listeners_hook_path�lve_utils_hook_paths    r�install_single_hookrJ�s����~�/�/��7�C�C���2�D�9�9���2�D�9�9���c�-�5�5�7�7�8�8�8�8��3�2�:�:�<�<�=�=�=�=��"�"�$�$�$��%�%�'�'�<�,?�,F�,F�,H�,H�<��&�&�':�;�;�;�;�;�<�<�<�<rc��tt|��}|���r|���dSdS)z
    Uninstall single hook
    N)rrCrr)rFrHs  r�uninstall_single_hookrL�sK���2�D�9�9���%�%�'�'�%��"�"�$�$�$�$�$�%�%rc�8�tD]}t|���dS)z-
    Install wpos_user_dirs_hook.py hook
    N)�DEFAULT_WPOS_HOOKSrJ�rFs r�install_default_panel_hooksrP�s.��#�"�"���D�!�!�!�!�"�"rc�8�tD]}t|���dS)z/
    Uninstall wpos_user_dirs_hook.py hook
    N)rNrLrOs r�uninstall_default_panel_hooksrR�s.��#�$�$���d�#�#�#�#�$�$rc�r�tjtdgd���tD]}t	|���dS)z#
    Install panel WPOS hooks.
    z-iT��capture_outputN)�
subprocess�runr�DYNAMIC_WPOS_HOOKSrJrOs r�install_dynamic_panel_hooksrY�sI���N�1�4�8��N�N�N�N�"�"�"���D�!�!�!�!�"�"rc�r�tjtdgd���tD]}t	|���dS)z"
    Remove panel WPOS hooks.
    z-dTrTN)rVrWrrXrLrOs r�uninstall_dynamic_panel_hooksr[�sI���N�1�4�8��N�N�N�N�"�$�$���d�#�#�#�#�$�$rc��t��t��r\t��rPtt��r*t��t
��t��t��dSdSdS)z
    Install all hooks
    N)	rPrr	r
rr-r5r<rYr,rr�_install_hooksr]�s��� �!�!�!����&�:�<�<�&�%�&:�;�;�	3�.�0�0�0�-�/�/�/�0�2�2�2�#�%�%�%�%�%�&�&�&�&rc��t��t��t��t��t	��dS)z
    Uninstall all hooks
    N)r0r7r>r[rRr,rr�_uninstall_hooksr_�sF��)�*�*�*�'�)�)�)�*�,�,�,�!�#�#�#�!�#�#�#�#�#rc�~�dtjvrt��dSdtjvrt��dSdS)zA
    Install or uninstall panel and yum/dnf universal hooks.
    z	--installz--uninstallN)�sys�argvr]r_r,rr�mainrc�sJ���c�h���������	�#�(�	"�	"�������
#�	"r�__main__)r
N)2rVra�distutils.sysconfigr�pathlibr�clwpos.constantsrrr�clwpos.optimization_featuresr�clwpos.feature_suitesr	r
�clwpos.utilsrr&r'r%r$r2r9rC�MODIFY_USER_HOOK�USER_DIRS_HOOKrXrNrDrr r*r-r0r3r5r7r:r<r>rJrLrPrRrYr[r]r_rc�__name__r,rr�<module>rns�������
�
�
�
�.�.�.�.�.�.�����������������
>�=�=�=�=�=���������+�*�*�*�*�*�K��I��K��1��&��,��=��-��)��&�(��$�&��	1�#�	1�$�	1�	1�	1�	1� �C� �D� � � � �
3��
3�
3�
3�
3�[�[�[�[�]�]�]�]�
3��
3�
3�
3�
3�V�V�V�V�X�X�X�X�
3�4�
3�
3�
3�
3�Y�Y�Y�Y�[�[�[�[�<�<�<�<�%�%�%�"�"�"�"�$�$�$�$�"�"�"�"�$�$�$�$�&�&�&�$�$�$�����z����D�F�F�F�F�F��r