File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/engines/__pycache__/script.cpython-310.pyc
o
�N�g � @ sp d Z ddlZddlZddlZddlZddlZddlZddlZddl m
Z
e�e�Z
dd� Zdd� Zd
dd�ZdS )a�
Send events based on a script's stdout
Example Config
.. code-block:: yaml
engines:
- script:
cmd: /some/script.py -a 1 -b 2
output: json
interval: 5
onchange: false
Script engine configs:
cmd
Script or command to execute
output
Any available saltstack deserializer
interval
How often in seconds to execute the command
onchange
.. versionadded:: 3006.0
Only fire an event if the tag-specific output changes. Defaults to False.
� N)�CommandExecutionErrorc c s � t | jjd�E dH dS )z'
Generator that returns stdout
� N)�iter�stdout�readline)�proc� r �G/opt/saltstack/salt/lib/python3.10/site-packages/salt/engines/script.py�_read_stdout- s �r
c C s8 t j�t�}zt|| �W S ty td| � d���w )zM
Helper to return known serializer based on
pass output argument
zUnknown serializer `z` found for output option)�salt�loader�serializers�__opts__�getattr�AttributeErrorr )�outputr
r r r �_get_serializer4 s
��r �json� Fc
C s� zt �| �} W n ty t �t| ��} Y nw t�d| � t|�}t�d�dkr5t j
j�ttd �j
}ntd }|r=i } z�zutj| tjtjd�}t�d|j� t|�D ]E}t�|� |�|�} | �d d
�}
| �di �}|ryd|vrytd |d<