a )gJ@sddlmZmZmZeZddlZddlZddlm Z m Z ddl Z ddl m ZddlmZddlmZddlmZddlmZddlmZmZeZdd d ZdddZdS))absolute_importdivisionprint_functionN)PopenPIPE)context) AnsibleError)Display) get_bin_path)to_text to_nativeHEADcCst|d||ddS)NgitF)scmnameversion keep_scm_meta)scm_archive_resource)srcrrr8/usr/lib/python3.9/site-packages/ansible/utils/galaxy.pyscm_archive_collection&srrFc Cs dd}|dvrtd|z t|}Wn(tttfyPtd||fYn0tjtjd}|dg}t j d} | r|d kr| d d gn|d kr| d | ||g||||d kr|r|dt |g} || tj||tjddtjd} d} |rbtd||| jft| jd(} | jtj|||dWdn1sV0Ynx|d kr|ddd|g} |r| d|g| | jn<|d kr|dd|d| jg} |r| |n | d| durtd| || tj||| jS)Nc Ssz(d}d}t||ttd}|\}}WnPtyx}z8d|}td|td|t|fWYd}~n d}~00|j dkrtdd|||j t|fdS)N)cwdstdoutstderr zran %s:zwhen executing %s: %srz0- command %s failed in directory %s (rc=%s) - %s) rrZ communicate Exceptionjoindisplaydebugrr returncode)cmdtempdirrrpopeneZranrrr run_scm_cmd,s * z)scm_archive_resource..run_scm_cmd)hgrz#- scm %s is not currently supportedzDcould not find/use %s, it is required to continue with installing %s)dirZclone ignore_certsrz-czhttp.sslVerify=falser'z --insecureZcheckoutFz.tar)deletesuffixr(ztarring %s from %s to %sw)Zarcnamearchivez--prefixz%s/z-rz --prefix=%s/z --output=%sr z archiving %s)rr ValueErrorOSErrorIOErrortempfileZmkdtempCZDEFAULT_LOCAL_TMPrZCLIARGSextendappendr ospathrZNamedTemporaryFilerZvvvrtarfileopenadd)rrrrrr&Zscm_pathr#Z clone_cmdr)Z checkout_cmdZ temp_fileZ archive_cmdtarrrrr*sP       :     r)Nr )rNr F)Z __future__rrrtypeZ __metaclass__r5r1 subprocessrrr7Zansible.constantsZ constantsr2ZansiblerZansible.errorsrZansible.utils.displayr Z#ansible.module_utils.common.processr Z+ansible.module_utils.common.text.convertersr r rrrrrrrs