B
    b                 @   s   d Z ddlZddlZddlZddlZddlZddlZddlZej	Z
dd Zdd Zejjeddd	d
gdZejjejddejjjejjdddZdd Zdd ZdS )zSCons.Tool.zip

Tool-specific initialization for zip.

There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.

    Nc             C   sV   t | }|s&t|j}|dd }tj||d}|jd@ d> |_||_	|j
|_|S )Nr      )filename	date_timei     )osstattimeZ	localtimest_mtimezipfileZZipInfost_modeZexternal_attrZcompress_typest_sizeZ	file_size)fnamearcnamer   compressionstmtimezinfo r   -lib/python3.7/site-packages/SCons/Tool/zip.py_create_zipinfo_for_file0   s    
r   c             C   s  | dtj}t| dd}| d}g }xt|D ]l}| rx^tt|D ]<\}}	}
x0|
D ](}tj||}tj	|r^|
| q^W qNW q2|
t| q2W tt| d d|V}xN|D ]F}tj||}t||||}t|d}|||  W d Q R X qW W d Q R X d S )NZIPCOMPRESSIONZIPROOT ZIP_OVERRIDE_TIMESTAMPr   wrb)getr
   Z
ZIP_STOREDstrisdirr   walkpathjoinisfileappendZZipFilerelpathr   openZwritestrread)targetsourceenvr   Zzip_rootr   filessdirpathZdirnames	filenamesr   r    Zzfr   r   fr   r   r   zip_builder<   s$    



r/   z
$ZIPCOMSTRr   r   r   )Zvarlistz$ZIPCOMz
$ZIPSUFFIX   )actionZsource_factoryZsource_scannersuffixZmultic             C   sz   y| d d }W n$ t k
r4   t}|| d d< Y nX d| d< tjd| d< t| d< t| d< d	| d
< tjd| d< dS )zBAdd Builders and construction variables for zip to an Environment.ZBUILDERSZZipzipZZIPr   ZZIPFLAGSZZIPCOMr   z.zipZ	ZIPSUFFIXr   N)KeyError
ZipBuilderSConsZUtilZCLVar	zipActionzip_compression)r)   Zbldr   r   r   generatea   s    r9   c             C   s   dS )NTr   )r)   r   r   r   existsq   s    r:   )__doc__r   ZSCons.Builderr6   ZSCons.DefaultsZSCons.Node.FSZ
SCons.Utilr   r
   ZZIP_DEFLATEDr8   r   r/   ZActionr7   ZBuilderZNodeZFSZEntryZDefaultsZ
DirScannerr5   r9   r:   r   r   r   r   <module>	   s&   
