File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/file.cpython-310.pyc
o
�N�g\� � @ sZ d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZ ddlmZmZ ddlZddlZddlZddlZddlZddlZddlZddl Zddl!Zddl"Zddl#Zddl$Zddl%Zddl&Zddl'Zddl(Zddl)m*Z*m+Z+m,Z, ddl)m-Z. ddlm/Z/m0Z0 ddl1m2Z2 z
ddl3Z3ddl4Z4W n e5y� Y nw e�6e7�Z8d d
iZ9edd�Z:d
d� Z;dd� Z<dd� Z=dd� Z>dd� Z?dd� Z@dd� ZAdd� ZBdd� ZCdd � ZD�d
d"d#�ZE�d
d$d%�ZFd&d'� ZGd(d)� ZH�d
d*d+�ZI�d
d,d-�ZJ�d
d.d/�ZKd0d1� ZLd2d3� ZMd4d5� ZNd6d7� ZOd8d9� ZPd:d;� ZQd<d=� ZR�dd?d@�ZS�ddBdC�ZT D D E !�d
dFdG�ZUdHdI� ZVdJdK� ZW�ddMdN�ZX D O P Q L L�ddRdS�ZY�ddTdU�ZZ D O V L L�ddWdX�Z[e
j\e
j]e
j^e
j_e
j`e
jadY�ZbdZd[� Zc�dd]d^�Zd�dd_d`�Ze�ddadb�Zfdcdd� Zgdedf� Zh�d
dgdh�Zididj� Zj�ddldm�Zkdndo� Zldpdq� Zmdrds� Zn !�ddtdu�Zo ! L L !�ddvdw�Zp x k L L O L L ! L ! L�ddydz�Zq { | D L L O L ! L �dd}d~�Zr�ddd��Zs�dd�d��Ztd�d�� Zu�dd�d��Zvd�d�� Zwd�d�� Zxd�d�� Zyd�d�� Zz�dd�d��Z{d�d�� Z|d�d�� Z}d�d�� Z~d�d�� Zd�d�� Z�d�d�� Z��dd�d��Z�d�d�� Z��dd�d��Z�d�d�� Z�d�d�� Z��dd�d��Z��dd�d��Z�d�d�� Z�d�d�� Z��dd�d��Z��dd�d��Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z��dd�d��Z�d�d�� Z� L�d d�d��Z�d�d Z�d�dĄ Z� L ! L�d!d�dƄZ� �d"d�dȄZ� L �d#d�dʄZ� L L�d$d�d̄Z� L L ! L�d%d�d΄Z� ! L�d&d�dЄZ� E ! ! L �d'd�d҄Z� L ! ! L L � ! L�d(d�dՄZ��d)d�dׄZ��d)d�d �Z��d*d�dۄZ�d�d݄ Z�d�d߄ Z��d+d�d�Z�d�d� Z��d+d�d�Z�d�d� Z��d+d�d�Z��d,d�d�Z��d-d�d�Z�ej�j���e�d�Z��d-d�d�Z�d�d� Z�d�d�� Z�ej�j���e�d��Z�d�d�� Z��dd�d��Z�d�d�� Z�d�d�� Z��d �d� Z��d�d� Z��d�d� Z��d�d�d�Z��d�d � Z�dS (. z|
Manage information about regular files, directories,
and special files on the minion, set/read user,
group, mode, and data
� N)�
namedtuple)�Iterable�Mapping)�CommandExecutionError�MinionError�SaltInvocationError)�get_error_message)�HASHES�
HASHES_REVMAP)�Version� makedirs_�makedirs�AttrChangesz
added,removedc C s t jj�� rdS dS )z)
Only work on POSIX-like systems
)FziThe file execution module cannot be loaded: only available on non-Windows systems - use win_file instead.T)�salt�utils�platform�
is_windows� r r �E/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/file.py�__virtual__C s r c sr � � tj�t�� tjjj ��r3t
j�t
d �� �}t� fdd�|D ��}tj�� �r5|s7t�� � dS dS dS dS )z(
Clean out a template temp file
Z
file_rootsc 3 s � | ]}� � |�V qd S �N)�
startswith)�.0�root��sfnr r � <genexpr>Z s � z__clean_tmp.<locals>.<genexpr>N)r �os�path�join�tempfile�
gettempdirr r �files�TEMPFILE_PREFIX� itertools�chain�
from_iterable�__opts__�values�any�exists�remove)r Z all_rootsZin_rootsr r r �__clean_tmpQ s ��r, c C s d| d<