관리-도구
편집 파일: module_manifest.cpython-39.opt-1.pyc
a �)gD � @ s� d dl mZmZmZ eZd dlZd dlZd dlZd dl Z d dl Z d dlZd dlZd dl mZ d dlmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d d lmZ G d d� de�Zdd � Z dd� Z!dd� Z"dS )� )�absolute_import�division�print_functionN)�LooseVersion)� constants)�AnsibleError)�to_bytes� to_native�to_text)� import_module)�ps_module_utils_loader)�resource_from_fqcrc @ s8 e Zd Zdd� Zddd�Zdd � Zdd d�Zdd � ZdS )�PSModuleDepFinderc C s� t � | _t � | _t � | _t � | _d | _d | _d| _t� t d��g| _t� t d��g| _t� t d��t� t d��g| _ t� t d��| _t� t d��| _t� t d��| _t� t d ��| _d S ) NFz`(?i)^using\s((Ansible\..+)|(ansible_collections\.\w+\.\w+\.plugins\.module_utils\.[\w\.]+));\s*$z�(?i)^#\s*ansiblerequires\s+-csharputil\s+((Ansible\.[\w\.]+)|(ansible_collections\.\w+\.\w+\.plugins\.module_utils\.[\w\.]+)|(\.[\w\.]+))(?P<optional>\s+-Optional){0,1}z?(?i)^#\s*requires\s+\-module(?:s?)\s*(Ansible\.ModuleUtils\..+)z�(?i)^#\s*ansiblerequires\s+-powershell\s+((Ansible\.ModuleUtils\.[\w\.]+)|(ansible_collections\.\w+\.\w+\.plugins\.module_utils\.[\w\.]+)|(\.[\w\.]+))(?P<optional>\s+-Optional){0,1}z+(?i)^#\s*ansiblerequires\s+-wrapper\s+(\w*)z5(?i)^#requires\s+\-version\s+([0-9]+(\.[0-9]+){0,3})$z>(?i)^#ansiblerequires\s+\-osversion\s+([0-9]+(\.[0-9]+){0,3})$z!(?i)^#ansiblerequires\s+\-become$)�dict� ps_modules�exec_scripts�cs_utils_wrapper�cs_utils_module� ps_version� os_version�become�re�compiler � _re_cs_module�_re_cs_in_ps_module� _re_ps_module�_re_wrapper�_re_ps_version�_re_os_version� _re_become)�self� r! �O/usr/lib/python3.9/site-packages/ansible/executor/powershell/module_manifest.py�__init__ s$ � ��zPSModuleDepFinder.__init__NFTc C s� |� d�}t� }|r| j}n| j}|rB| j| jdf| j|dfg}n| j|dfg}|D �]} |D ]t} | d D ]f}|�| �}|rjt |� d��� �} |�� }|� dd �d u}| | d �� vr�|�| | d ||f� q^qjq^|�r4| j�| �}|r�| �|d� | j�| �}|�r| �|d � | j�s4| j�| �}|�r4d | _|rT| j�| �}|rT| �|� d��� � qTt|�D ]}| j|d|i� �qfd S )N� �.psm1z.csr � �optional� r r T�wrapper)�split�setr r r r r r �matchr �group�rstrip� groupdict�get�keys�addr �_parse_version_matchr r r r �scan_exec_script�_add_module)r Zmodule_data�fqnr) � powershell�linesZmodule_utils�cs_utilsZchecks�line�check�patternr, Zmodule_util_nameZ match_dictr'