Your IP : 216.73.216.213
3
� f� � @ s� d Z dadadadt ZddlZddlZddlZddlZddl m
Z
dd� Zejfd d
�Z
ejfdd�Zejd
d� ejfdd�Zedks�eejd kr�ejeejd
d� ej�� dS )z9Python utility to print MD5 checksums of argument files.
i� N�rbaD
usage: md5sum.py [-b] [-t] [-l] [-s bufsize] [file ...]
-b : read files in binary mode (default)
-t : read files in text mode (you almost certainly don't want this!)
-l : print last pathname component only
-s bufsize: read buffer size (default %d)
file ... : files to sum; '-' or no files means stdin
� )�md5c G s� d}| r0t | d tj�r0| d | d d� }} ntj}t| �dkrZt | d t� rZ| d } xP| D ]H}t |t�r�|dkr�ttjd|�p�|}q�t ||�p�|}q`t
||�p�|}q`W |S )Nr � �-z<stdin>���r r )�
isinstance�io�IOBase�sys�stdout�len�str�
printsumfp�stdin�printsum�sum)�files�sts�out�f� r �9/opt/alt/python36/lib64/python3.6/Tools/scripts/md5sum.pyr s
r c C sh yt | t�}W n4 tk
rB } ztjjd| |f � dS d }~X nX trPt| �} t|| |�}|j� |S )Nz%s: Can't open: %s
r ) �open�rmode�IOErrorr
�stderr�write�fnfilterr �close)�filenamer �fp�msgr r r r r , s r c C s� t � }y:x4| jt�}|sP t|t�r0|j| j�}|j|� q
W W n4 tk
rt } zt j
jd||f � dS d }~X nX |jd|j� |f � dS )Nz%s: I/O error: %s
r z%s %s
r )
r �read�bufsizer r
�encode�encoding�updater r
r r Z hexdigest)r r r �m�datar! r r r r 8 s
r r c C s� yt j | d�\}} W n> t jk
rR } z tjjdtjd |tf � dS d }~X nX xN|D ]F\}}|dkrttjj a
qZ|dkr�daqZ|dkr�d aqZ|d
krZt|�a
qZW | s�dg} t| |�S )Nzblts:z %s: %s
%sr � z-lz-br z-t�rz-sr )�getopt�errorr
r r �argv�usage�os�path�basenamer r �intr# r )�argsr Zoptsr! �o�ar r r �mainH s"