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/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/pecl.cpython-310.pyc
o

�N�g
�@s|dZddlZddlZddlZddlZddlZddiZe�e	�Z
dZdd�Zdd	d
�Z
ddd
�Zdd�Zdd�Zddd�ZdS)z
Manage PHP pecl extensions.
�N�list_�list�peclcCstjj�d�r	tSdS)Nr)FzEThe pecl execution module not loaded: pecl binary is not in the path.)�salt�utils�path�which�__virtualname__�r
r
�E/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/pecl.py�__virtual__srFcCsRd|��}tjj�|�rd|}td|dd�}|ddkr"|dSt�d	�d
S)z.
    Execute the command passed with pecl
    zpecl z	yes '' | zcmd.run_allT)Zpython_shell�retcoder�stdoutz,Problem running pecl. Is php-pear installed?�)rr�dataZis_trueZ__salt__�log�error)�command�defaultsZcmdline�retr
r
r�_pecls

r�stablec		Cs�t|t�r|g}dt�|���}|r"td�|t�d�|���|d�Std�|t�d�|���|d�t|t�s:|g}|D]1}d}d|vrL|�d�\}}nd}t	|�}|D]}d	�||�
|�d
�}||vrgd}qT|smdSq<dS)a
    .. versionadded:: 0.17.0

    Installs one or several pecl extensions.

    pecls
        The pecl extensions to install.

    defaults
        Use default answers for extensions such as pecl_http which ask
        questions before installation. Without this option, the pecl.installed
        state will hang indefinitely when trying to install these extensions.

    force
        Whether to force the installed version or not

    CLI Example:

    .. code-block:: bash

        salt '*' pecl.install fuse
    z-d preferred_state=z{} install -f {}� )rz
{} install {}F�/Nz{}-{}rT)�
isinstance�str�shlex�quoter�format�joinr�splitr�get)	�peclsr�forceZpreferred_stater�found�channelZinstalled_peclsZinstalled_pecl_with_versionr
r
r�install.s>
��
���r&cC�*t|t�r|g}td�t�d�|����S)z�
    Uninstall one or several pecl extensions.

    pecls
        The pecl extensions to uninstall.

    CLI Example:

    .. code-block:: bash

        salt '*' pecl.uninstall fuse
    zuninstall {}r�rrrrrrr�r"r
r
r�	uninstallf�

r*cCr')z�
    Update one or several pecl extensions.

    pecls
        The pecl extensions to update.

    CLI Example:

    .. code-block:: bash

        salt '*' pecl.update fuse
    z
install -U {}rr(r)r
r
r�updatexr+r,cs�t�d��i}d}|r|�dt�|���}t|���}�fdd�|D�}|D]}��|�}|r>|�d�|�d�g||�d�<q&|S)	zq
    List installed pecl extensions.

    CLI Example:

    .. code-block:: bash

        salt '*' pecl.list
    z^([^ ]+)[ ]+([^ ]+)[ ]+([^ ]+)rz -c c3s�|]
}��|�r|VqdS�N)�match)�.0�l�Zpecl_channel_patr
r�	<genexpr>�s�zlist_.<locals>.<genexpr>���)�re�compilerrr�
splitlinesr.�group)r%r"r�lines�liner.r
r1rr�s


�)F)FFrr-)�__doc__�loggingr6rZsalt.utils.datarZsalt.utils.pathZ__func_alias__�	getLogger�__name__rr	rrr&r*r,rr
r
r
r�<module>s

	
8