add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
B

�/g^-c@sfddlZddlZddlZdddgZGdd�de�Zd
dd�dd�Zdd	d�Zd
d�Ze	dkrbe�dS)�N�Error�encode�decodec@seZdZdS)rN)�__name__Z
__module__Z__qualname__�rr�/usr/lib64/python3.7/uu.pyr'sF��backtickc	Csrg}�zL|dkrtjj}n`t|t�rz|dkr8tj�|�}|dkrfyt�|�j	}Wnt
k
rdYnXt|d�}|�|�|dkr�tj
j}nt|t�r�t|d�}|�|�|dkr�d}|dkr�d}|�dd�}|�dd�}|�d	|d
@|f�d��|�d�}x2t|�d
k�r2|�tj||d��|�d�}�qW|�rF|�d�n
|�d�Wdx|D]}|���qZWXdS)N�-�rb�wbi�Z
z\nz
z\rzbegin %o %s
i��asciii-rrs`
end
s 
end
)�sys�stdin�buffer�
isinstance�str�os�pathZbasenameZstatZst_modeZAttributeError�open�append�stdoutZreplace�writerZread�len�binasciiZb2a_uu�close)�in_file�out_fileZname�moder�opened_files�data�frrrr*sF









c

Csg}|dkrtjj}nt|t�r4t|d�}|�|��z�xr|��}|sNtd��|�	d�sZq:|�
dd�}t|�dkr:|ddkr:yt|d	d
�PWq:t
k
r�Yq:Xq:W|dkr�|d�d��d�}tj�|�r�td
|��|dkr�t|d	d
�}|dk�r
tjj}n0t|t��r:t|d�}t�||�|}|�|�|��}x�|�r�|�d�dk�r�yt�|�}	Wnjtjk
�r�}
zH|ddd@ddd}t�|d|��}	|�s�tj�d|
�Wdd}
~
XYnX|�|	�|��}�qDW|�s�td��Wdx|D]}|���qWXdS)Nr	r
z'No valid begin line found in input filesbegins �ir�is 	
rz"Cannot overwrite existing file: %srsendi i?iizWarning: %s
zTruncated input file)r
rrrrrrZreadlinerZ
startswithZsplitrZintZ
ValueErrorZrstriprrrZexistsrZchmodZstriprZa2b_uuZstderrrr)
rrrZquietrZhdrZ	hdrfieldsZfpZsrZvZnbytesr rrrrds`









"

cCs4ddl}|jdd�}|jdddddd	d
�|jddd
ddd	d
�|��\}}t|�dkrl|�d�t�d�tjj	}tj
j	}t|�dkr�|d}t|�dkr�|d}|jr�|jr�t
|t�r�t|d�}nttjdd�t�d�t||�nD|j�r&t
|t��rt|d�}nttjdd�t�d�t||�dS)Nrz'usage: %prog [-d] [-t] [input [output]])Zusagez-dz--decoderzDecode (instead of encode)?FZ
store_true)ZdestZhelpZdefaultZactionz-tz--text�textz2data is text, encoded format unix-compatible text?r!zincorrect number of argumentsr"rz: cannot do -t to stdoutr
z: cannot do -t from stdin)�optparseZOptionParserZ
add_optionZ
parse_argsrZerrorr
Zexitrrrrr#rrrZprintZargvr)r$ZparserZoptionsZargsZinputZoutputrrr�test�s6




r%Z__main__)NN)NNF)
rrr
Z__all__Z	Exceptionrrrr%rrrrrZ<module>!s
:
C&