
    Vh                        d dl mZ d dlZd dlZd dlmZmZ d dlZd dlm	Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ  e       Zdd	Zdd
Zy)    )annotationsN)PopenPIPE)context)AnsibleError)Display)get_bin_path)to_text	to_nativec                "    t        | d||d      S )NgitF)scmnameversionkeep_scm_meta)scm_archive_resource)srcr   r   s      D/home/dcms/DCMS/lib/python3.12/site-packages/ansible/utils/galaxy.pyscm_archive_collectionr   $   s    T7Z_``    c                L   d }|dvrt        d|z        	 t        |      }t        j                  t        j                        }|dg}t        j                  d   xs t        j                  }	|	r/|d	k(  r|j                  d
dg       n|dk(  r|j                  d       |j                  | |g        |||       |d	k(  r7|r5|dt        |      g}
 ||
t        j                   j#                  ||             t        j$                  ddt        j                        }d }|rt&        j)                  d|d|d|j*                         t-        j.                  |j*                  d      5 }|j1                  t        j                   j#                  ||      |       d d d        n|dk(  r:|ddd|z  g}|r|j                  d|g       |j                  |j*                         n@|d	k(  r;|dd|z  d|j*                  z  g}|r|j                  |       n|j                  d       |?t&        j)                  d|z          ||t        j                   j#                  ||             |j*                  S # t        t        t        f$ r t        d|d|       w xY w# 1 sw Y   xY w)Nc                   	 d}d}t        | |t        t              }|j                         \  }}|j                  dk7  r9t        ddj	                  |       d	|d
|j                  dt        |            y # t        $ rH}dj	                  |       }t
        j                  d|z         t        d|dt        |            d }~ww xY w)N )cwdstdoutstderr zran %s:zwhen executing z: r   z
- command z failed in directory z (rc=z) - )
r   r   communicate	Exceptionjoindisplaydebugr   r   
returncode)cmdtempdirr   r   popenerans          r   run_scm_cmdz)scm_archive_resource.<locals>.run_scm_cmd*   s    	NFF#74EE"..0NFF
 q UXU]U]^aUbdkmrm}m}  @I  JP  @Q   R  S  S !	  	N((3-CMM)c/*#y|LMM	Ns   .A9 9	C
ACC
)hgr   z#- scm %s is not currently supportedzcould not find/use z-, it is required to continue with installing )dircloneignore_certsr   z-czhttp.sslVerify=falser*   z
--insecurecheckoutFz.tar)deletesuffixr+   ztarring z from z to w)arcnamearchivez--prefixz%s/z-rz--prefix=%s/z--output=%sHEADzarchiving %s)r   r	   
ValueErrorOSErrorIOErrortempfilemkdtempCDEFAULT_LOCAL_TMPr   CLIARGSGALAXY_IGNORE_CERTSextendappendr
   ospathr    NamedTemporaryFiler!   vvvr   tarfileopenadd)r   r   r   r   r   r)   scm_pathr%   	clone_cmdr-   checkout_cmd	temp_filearchive_cmdtars                 r   r   r   (   sd   S -@3FGGp$ 1#6#67G7#I ??>2Ka6K6KL%<d$:;<D[\*c4[!	7#
e| *gg.>?L"'',,w"=>++5QM`M`aIK$PQ\\)..#. 	?#GGBGGLL$/G>	? 	?	JEg/9>>*	NT,A=S\SaSaCabw'v&N[01Kgt!<=>>[ ) pehjmnoop6	? 	?s   I1 *2J1&JJ#)Nr4   )r   Nr4   F)
__future__r   r@   r8   
subprocessr   r   rD   ansible.constants	constantsr:   ansibler   ansible.errorsr   ansible.utils.displayr   #ansible.module_utils.common.processr	   +ansible.module_utils.common.text.convertersr
   r   r!   r   r    r   r   <module>rW      s=   $ # 	  "    ' ) < J )aAr   