B
    v-_                 @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ dZdd ZdddZ	dd	 Z
d
d Zdd ZdddZedkreejdd  dS )    N)message_rsmaszvexample:
  check_downloads.py  $TESTDATA_ISCE/project/SLC/
  check_downloads.py  $TESTDATA_ISCE/project/SLC/ --delete
c              C   s8   t jdt jtd} | jdddd | jddd	d
d | S )Nz6delete broken zipfiles in $TESTDATA_ISCE/project/SLC/.)descriptionformatter_classepiloginputdir   zdirectory for download zipfiles)nargshelpz--delete
store_trueFzwhether delete data.)actiondefaultr	   )argparseArgumentParserRawTextHelpFormatterEXAMPLEadd_argument)parser r   B/home/centos/operations/rsmas_insar/minsar/utils/check_download.pycreate_parser   s    r   c             C   s   t  }|j| d}|S )N)args)r   
parse_args)iargsr   inpsr   r   r   cmd_line_parse"   s    r   c          	   C   s   d | j}t| td}g }x>|D ]6}yt|d}W q* tjk
r^   || Y q*X q*W |rt	d x|D ]}t	| qvW |S )z5
    check download zipfiles and get the reports
     z*.ziprzBroken zipfiles:)
joinr   oschdirglobzipfileZipFileZ
BadZipFileappendprint)r   r   filelistbroken_listfilezffilenamer   r   r   check_zipfiles*   s    



r*   c             C   sj   d | j}t| xN|D ]F}tj|}tj|rt| t	t
 tjtd |  qW dS )zdelete bad filesr   z: deleting N)r   r   r   r   pathrealpathexistsremover   loggetcwdbasename__file__)r   r&   r   r'   	real_pathr   r   r   delete_files>   s    


$r4   c             C   s   d | j}t| td}g }g }xP|D ]H}tj|}tj|}|d }|dkrd|| |dkr.|| q.W |rt	d x|D ]}	t	|	 qW |rt	d x|D ]}
t	|
 qW ||fS )z+check file size equal to 0 bit and 1568 bitr   z*.zip   r   i   zFiles with 0-bit size:zFiles with 1568-bit size:)
r   r   r   r   r    r+   r,   getsizer#   r$   )r   r   r%   Z
bit_0_listZbit_1568_listr'   r3   Z	size_byteZsize_bitZfile_0Z	file_1568r   r   r   
check_sizeI   s,    





r7   c             C   sl   t | }t|}t|\}}|| | }tt|}t|}td| |jrh|dkrhtd| t|| d S )NzNumber of bad files: r   zNumber of files deleted: )	r   r*   r7   listsetlenr$   deleter4   )r   r   Zbroken_filesZbit_0_filesZbit_1568_filesZ	bad_filesZnumber_of_filesr   r   r   mainc   s    

r<   __main__r   )N)N)r   r    sysr   r!   minsar.objectsr   r   r   r   r*   r4   r7   r<   __name__argvr   r   r   r   <module>
   s   

