3 \F!ã @s@ddlZddlmZddlZy ddlZWnek r@dZYnXddlmZddlm Z ddl m Z ddl m Z yddlmZWnek ršdZYnXyddlmZWnek rÄdZYnXd d „Zd d „Zd dd„Zd!dd„Zed"gdfed#gdfed$gdfed%gdfed&gdfegdfdœZdd„Zd'dd„ZdS)(éN)Úwarn)ÚDistutilsExecError)Úspawn)Úmkpath)Úlog)Úgetpwnam)Úgetgrnamc CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Né)rÚKeyError)ÚnameÚresult©r ú./usr/lib64/python3.6/distutils/archive_util.pyÚ_get_gids  rc CsNtdks|dkrdSy t|ƒ}Wntk r8d}YnX|dk rJ|dSdS)Nr )rr )r r r r rÚ_get_uid+s  rÚgzipc s.ddddddœ}dddd d œ}|dk r:||jƒkr:td ƒ‚|d } |d krZ| |j|dƒ7} ttjj| ƒ|d�ddl} tj dƒt ˆƒ‰t ˆƒ‰‡‡‡‡fdd„} |sØ| j | d||ƒ} z| j || d�Wd| jƒX|d k�r*tdtƒ| ||} tjdk�r|| | g}n |d| g}t||d�| S| S)NZgzÚbz2ÚxzÚ)rÚbzip2rNÚcompressz.gzz.bz2z.xzz.Z)rrrrzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarr)Údry_runrzCreating tar archivecs,ˆdk rˆ|_ˆ|_ˆdk r(ˆ|_ˆ|_|S)N)ÚgidZgnameÚuidÚuname)Ztarinfo)rÚgroupÚownerrr rÚ _set_uid_gidasz"make_tarball.._set_uid_gidzw|%s)Úfilterz'compress' will be deprecated.Zwin32z-f)ÚkeysÚ ValueErrorÚgetrÚosÚpathÚdirnameÚtarfilerÚinforrÚopenÚaddÚcloserÚPendingDeprecationWarningÚsysÚplatformr)Ú base_nameÚbase_dirrÚverboserrrZtar_compressionZ compress_extZ archive_namer%rÚtarZcompressed_nameÚcmdr )rrrrrÚ make_tarball7s<          r2c Cs®|d}ttjj|ƒ|d�tdkrp|r.d}nd}ytd|||g|d�Wn tk rjtd|ƒ‚YnX�n:tjd||ƒ|�sªytj |dtj d �}Wn&t k rÀtj |dtj d �}YnX|tj krútjjtjj|d ƒƒ}|j||ƒtjd |ƒx¦tj|ƒD]˜\}} } x>| D]6} tjjtjj|| d ƒƒ}|j||ƒtjd |ƒ�qWxJ| D]B} tjjtjj|| ƒƒ}tjj|ƒ�rV|j||ƒtjd |ƒ�qVW�qW|jƒ|S) Nz.zip)rz-rz-rqÚzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itÚw)Z compressionrz adding '%s')rr"r#r$Úzipfilerrrr&ZZipFileZ ZIP_DEFLATEDÚ RuntimeErrorZ ZIP_STOREDÚcurdirÚnormpathÚjoinÚwriteÚwalkÚisfiler)) r-r.r/rZ zip_filenameZ zipoptionsr3r#ÚdirpathZdirnamesÚ filenamesr r r rÚ make_zipfilesJ          r?rzgzip'ed tar-filerzbzip2'ed tar-filerzxz'ed tar-filezcompressed tar filezuncompressed tar filezZIP file)ZgztarZbztarZxztarZztarr0r3cCsx|D]}|tkr|SqWdS)N)ÚARCHIVE_FORMATS)ZformatsÚformatr r rÚcheck_archive_formatsÄs rBcCsðtjƒ}|dk r6tjd|ƒtjj|ƒ}|s6tj|ƒ|dkrDtj}d|i} y t|} Wn t k rxt d|ƒ‚YnX| d} x| dD]\} } | | | <qŒW|dkr¸|| d<|| d<z| ||f| Ž}Wd|dk rêtjd |ƒtj|ƒX|S) Nzchanging into '%s'rzunknown archive format '%s'rér3rrzchanging back to '%s') r"ÚgetcwdrÚdebugr#ÚabspathÚchdirr7r@r r )r-rAZroot_dirr.r/rrrZsave_cwdÚkwargsZ format_infoÚfuncÚargÚvalÚfilenamer r rÚ make_archiveÎs2       rM)rrrNN)rr)rr)rr)rr)rr)rN)NNrrNN)r"Úwarningsrr+r5Ú ImportErrorZdistutils.errorsrZdistutils.spawnrZdistutils.dir_utilrZ distutilsrÚpwdrZgrprrrr2r?r@rBrMr r r rÚs@            G =