ó ÄAic @ s d Z d d l Z d d l Z d d l Z d d d g Z d e f d YZ d d d Z d d d d Z d Z e d k r e n d S( s Implementation of the UUencode and UUdecode functions. encode(in_file, out_file [,name, mode]) decode(in_file [, out_file, mode]) i˙˙˙˙Nt Errort encodet decodec B s e Z RS( ( t __name__t __module__( ( ( s /usr/lib64/python2.7/uu.pyR ' s c C s² g } z| d k r! t j } n t | t rİ | d k rQ t j j | } n | d k r y t j | j } Wq t k r q Xn t | d } | j | n | d k rÁ t j } n. t | t rï t | d } | j | n | d k rd } n | d k rd } n | j d | d @| f | j d } x; t | d k r| j t j | | j d } qFW| j d Wd x | D] } | j qWXd S( s Uuencode filet -t rbt wbiĥ s begin %o %s i˙ i- i s end N( t syst stdint isinstancet basestringt Nonet ost patht basenamet statt st_modet AttributeErrort opent appendt stdoutt writet readt lent binasciit b2a_uut close( t in_filet out_filet namet modet opened_filest datat f( ( s /usr/lib64/python2.7/uu.pyR * s> i c C sÊ g } | d k r t j } n+ t | t rI t | } | j | n z^xĦ t rï | j } | sv t d n | j d s qO n | j d d } t | d k rO | d d k rO y t | d d PWqì t k rè qì XqO qO W| d k r4| d j } t j j | r4t d | q4n | d k rVt | d d } n | d k rnt j } n_ t | t rÍt | d } y t j j | | Wn t k rĥn X| } | j | n | j } xµ | r| j d k ry t j | } Wnj t j k rs} t | d d d @d d d } t j | | } | stt j j d | qtn X| j | | j } qÜW| sĤt d n Wd x | D] } | j qħWXd S( s Decode uuencoded fileR s' No valid begin line found in input filet begint i i i i i s" Cannot overwrite existing file: %sR t endi i? i i s Warning: %s s Truncated input fileN( R R R R R R t Truet readlineR t startswitht splitR t intt ValueErrorR t rstripR R t existsR t chmodR t stripR t a2b_uut ordt stderrR R ( R R R t quietR t hdrt hdrfieldst fpt sR! t vt nbytesR" ( ( s /usr/lib64/python2.7/uu.pyR Z sf " $ c C s½ d d l } | j d d } | j d d d d d d d t d d | j d d d d d d d t d d | j \ } } t | d k rŻ | j d t j d n t j } t j } t | d k rà | d } n t | d k r˙ | d } n | j rb| j rRt | t r2t | d } qRt j d Gd GHt j d n t | | nW | j rĴt | t rt | d } qĴt j d Gd GHt j d n t | | d S( s uuencode/uudecode main programi˙˙˙˙Nt usages' usage: %prog [-d] [-t] [input [output]]s -ds --decodet destR t helps Decode (instead of encode)?t defaultt actiont store_trues -ts --textt texts2 data is text, encoded format unix-compatible text?i s incorrect number of argumentsi i t ws : cannot do -t to stdoutt rs : cannot do -t from stdin( t optparset OptionParsert add_optiont Falset parse_argsR t errorR t exitR R R R@ R R R t argvR ( RC t parsert optionst argst inputt output( ( s /usr/lib64/python2.7/uu.pyt test s6 (( t __main__( t __doc__R R R t __all__t ExceptionR R R R RP R ( ( ( s /usr/lib64/python2.7/uu.pyt
s 0D %