???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
Š¹¼]Ô"  ã               @   sœ   d  d l  Z  d  d l Z d  d l Z d  d l m Z d g Z d Z d Z d Z d Z	 d Z
 d	 Z e e e e	 e
 e g Z Gd
 d „  d ƒ Z d d „  Z d S)é    N)ÚquoteÚTemplateZffz-fzf-z--z.-z-.c               @   s    e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d d „  Z
 d d „  Z d d „  Z d d „  Z d d „  Z d S)r   c             C   s   d |  _  |  j ƒ  d  S)Nr   )Ú	debuggingÚreset)Úself© r   ú*/opt/alt/python35/lib64/python3.5/pipes.pyÚ__init__U   s    	zTemplate.__init__c             C   s   d |  j  f S)Nz<Template instance, steps=%r>)Ústeps)r   r   r   r   Ú__repr__Z   s    zTemplate.__repr__c             C   s   g  |  _  d  S)N)r
   )r   r   r   r   r   ^   s    zTemplate.resetc             C   s/   t  ƒ  } |  j d  d  … | _ |  j | _ | S)N)r   r
   r   )r   Útr   r   r   Úcloneb   s    	zTemplate.clonec             C   s   | |  _  d  S)N)r   )r   Úflagr   r   r   Údebugj   s    zTemplate.debugc             C   sÿ   t  | ƒ t  d ƒ k	 r$ t d ƒ ‚ | t k rC t d | f ƒ ‚ | t k r[ t d ƒ ‚ |  j r‡ |  j d d t k r‡ t d ƒ ‚ | d d k r¶ t j d	 | ƒ r¶ t d
 ƒ ‚ | d d k rå t j d | ƒ rå t d ƒ ‚ |  j j	 | | f ƒ d  S)NÚ z%Template.append: cmd must be a stringzTemplate.append: bad kind %rz-Template.append: SOURCE can only be prependedé   z'Template.append: already ends with SINKr   Úfz\$IN\bz#Template.append: missing $IN in cmdz\$OUT\bz$Template.append: missing $OUT in cmdéÿÿÿÿ)
ÚtypeÚ	TypeErrorÚ	stepkindsÚ
ValueErrorÚSOURCEr
   ÚSINKÚreÚsearchÚappend)r   ÚcmdÚkindr   r   r   r   n   s     ##zTemplate.appendc             C   s  t  | ƒ t  d ƒ k	 r$ t d ƒ ‚ | t k rC t d | f ƒ ‚ | t k r[ t d ƒ ‚ |  j r‡ |  j d d t k r‡ t d ƒ ‚ | d d k r¶ t j d	 | ƒ r¶ t d
 ƒ ‚ | d d k rå t j d | ƒ rå t d ƒ ‚ |  j j	 d | | f ƒ d  S)Nr   z&Template.prepend: cmd must be a stringzTemplate.prepend: bad kind %rz+Template.prepend: SINK can only be appendedr   r   z,Template.prepend: already begins with SOURCEr   z\$IN\bz$Template.prepend: missing $IN in cmdz\$OUT\bz%Template.prepend: missing $OUT in cmd)
r   r   r   r   r   r
   r   r   r   Úinsert)r   r   r   r   r   r   Úprepend~   s     ##zTemplate.prependc             C   sI   | d k r |  j  | ƒ S| d k r2 |  j | ƒ St d | f ƒ ‚ d  S)NÚrÚwz,Template.open: rw must be 'r' or 'w', not %r)Úopen_rÚopen_wr   )r   ÚfileÚrwr   r   r   ÚopenŽ   s    zTemplate.openc             C   s[   |  j  s t | d ƒ S|  j  d d t k r9 t d ƒ ‚ |  j | d ƒ } t j | d ƒ S)Nr!   r   z)Template.open_r: pipeline ends width SINKr   r   )r
   r'   r   r   ÚmakepipelineÚosÚpopen)r   r%   r   r   r   r   r#   ˜   s    	zTemplate.open_rc             C   s[   |  j  s t | d ƒ S|  j  d d t k r9 t d ƒ ‚ |  j d | ƒ } t j | d ƒ S)Nr"   r   r   z,Template.open_w: pipeline begins with SOURCEr   )r
   r'   r   r   r(   r)   r*   )r   r%   r   r   r   r   r$   ¢   s    	zTemplate.open_wc             C   s   t  j |  j | | ƒ ƒ S)N)r)   Úsystemr(   )r   ÚinfileÚoutfiler   r   r   Úcopyª   s    zTemplate.copyc             C   s6   t  | |  j | ƒ } |  j r2 t | ƒ d | } | S)Nzset -x; )r(   r
   r   Úprint)r   r,   r-   r   r   r   r   r(   ­   s
    	

zTemplate.makepipelineN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r    r'   r#   r$   r.   r(   r   r   r   r   r   R   s   

c             C   st  g  } x- | D]% \ } } | j  d | | d g ƒ q W| sU | j  d d d d g ƒ | d d d … \ } } | d d k r¢ |  r¢ | j d d d d d g ƒ |  | d d <| d d d … \ } } | d d k rú | rú | j  d d d d g ƒ | | d d <g  } x§ t d t | ƒ ƒ D] } | | d d } | | d }	 | d d k sj|	 d d k r$t j ƒ  \ }
 } t j |
 ƒ | j  | ƒ | | | d d <| | d <q$WxÎ | D]Æ } | \ } } } } | d d k rÿd	 t | ƒ d
 | } | d d k r'd t | ƒ d
 | } | d d k rQ| rQ| d t | ƒ } | d d k r{| r{| d t | ƒ } | | d <q¿W| d d } xw | d d  … D]e } | d d … \ } } | d d k rÿd | k rîd | d } | d | } q¨| d | } q¨W| rpd } x" | D] } | d t | ƒ } q$Wd t | d ƒ d } | d | d | } | S)Nr   Úcatz--r   r   é   r   é   zOUT=z; zIN=ú-z <z >z{ z; }z |
Ú
zrm -fú ztrap z; exitz 1 2 3 13 14 15r   r   r   r   )	r   r   ÚrangeÚlenÚtempfileÚmkstempr)   Úcloser   )r,   r
   r-   Úlistr   r   ZgarbageÚiZlkindZrkindÚfdZtempÚitemÚinfZoutfZcmdlistZrmcmdr%   Ztrapcmdr   r   r   r(   µ   s`     "r(   )r   r)   r;   Zshlexr   Ú__all__ZFILEIN_FILEOUTZSTDIN_FILEOUTZFILEIN_STDOUTZSTDIN_STDOUTr   r   r   r   r(   r   r   r   r   Ú<module><   s   	c