o nnh@sddlmZddlZddlZddlmZmZddlZddlm Z ddl m Z ddl mZddlmZddlmZddlmZmZeZdd d ZdddZdS)) annotationsN)PopenPIPE)context) AnsibleError)Display) get_bin_path)to_text to_nativeHEADcCst|d||ddS)NgitF)scmnameversion keep_scm_meta)scm_archive_resource)srcrrr?/usr/local/lib/python3.10/dist-packages/ansible/utils/galaxy.pyscm_archive_collection$srr Fc Csdd}|dvrtd|zt|}Wntttfy&td||fwtjtjd}|dg}t j dp9tj } | rQ|d krH| d d gn |d krQ| d | ||g||||d krt|rt|dt|g} || tj||tjddtjd} d} |rtd||| jft| jd} | jtj|||dWdn1swYn8|d kr|ddd|g} |r| d|g| | jn|d kr|dd|d| jg} |r| |n| d| durtd| || tj||| jS)Nc Sszd}d}t||ttd}|\}}Wn"ty6}zd|}td|td|t|fd}~ww|j dkrLtdd|||j t|fdS)N)cwdstdoutstderr zran %s:zwhen executing %s: %srz0- command %s failed in directory %s (rc=%s) - %s) rr communicate Exceptionjoindisplaydebugrr returncode)cmdtempdirrrpopeneranrrr run_scm_cmd*s   z)scm_archive_resource..run_scm_cmd)hgr z#- scm %s is not currently supportedzDcould not find/use %s, it is required to continue with installing %s)dirclone ignore_certsr z-czhttp.sslVerify=falser'z --insecurecheckoutFz.tar)deletesuffixr(ztarring %s from %s to %sw)arcnamearchivez--prefixz%s/z-rz --prefix=%s/z --output=%sr z archiving %s)rr ValueErrorOSErrorIOErrortempfilemkdtempCDEFAULT_LOCAL_TMPrCLIARGSGALAXY_IGNORE_CERTSextendappendr ospathrNamedTemporaryFilervvvrtarfileopenadd)rr rrrr&scm_pathr" clone_cmdr* checkout_cmd temp_file archive_cmdtarrrrr(sV       r)Nr )r Nr F) __future__rr<r4 subprocessrrr@ansible.constants constantsr6ansibleransible.errorsransible.utils.displayr#ansible.module_utils.common.processr+ansible.module_utils.common.text.convertersr r rrrrrrrs