3 Õì2aÔ" ã @ sl d dl Z d dlZd dlZd dlmZ dgZdZdZdZdZ dZ d Zeeee e egZG d d„ dƒZ dd„ ZdS ) é N)ÚquoteÚTemplateZffz-fzf-z--z.-z-.c @ sl e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd d „ Zdd„ Zd d„ Z dd„ Z dd„ Zdd„ Zdd„ Z dd„ ZdS )r c C s d| _ | jƒ d S )Nr )Ú debuggingÚreset)Úself© r ú*/opt/alt/python36/lib64/python3.6/pipes.pyÚ__init__U s zTemplate.__init__c C s d| j f S )Nz)Ústeps)r r r r Ú__repr__Z s zTemplate.__repr__c C s g | _ d S )N)r )r r r r r ^ s zTemplate.resetc C s" t ƒ }| jd d … |_| j|_|S )N)r r r )r Útr r r Úcloneb s zTemplate.clonec C s || _ d S )N)r )r Úflagr r r Údebugj s zTemplate.debugc C s¶ t |ƒt dƒk rtdƒ‚|tkr.td|f ƒ‚|tkr>tdƒ‚| jr^| jd d tkr^tdƒ‚|d dkr€tjd |ƒ r€td ƒ‚|d dkr¢tjd|ƒ r¢tdƒ‚| jj ||fƒ d S )NÚ z%Template.append: cmd must be a stringzTemplate.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 zTemplate.appendc C s¸ t |ƒt dƒk rtdƒ‚|tkr.td|f ƒ‚|tkr>tdƒ‚| jr^| jd d tkr^tdƒ‚|d dkr€tjd |ƒ r€td ƒ‚|d dkr¢tjd|ƒ r¢tdƒ‚| jj d||fƒ d S ) Nr z&Template.prepend: cmd must be a stringzTemplate.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 zTemplate.prependc C s6 |dkr| j |ƒS |dkr$| j|ƒS td|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 sB | j st|dƒS | j d d tkr*tdƒ‚| j|dƒ}tj|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 zTemplate.open_rc C sB | j st|dƒS | j d d tkr*tdƒ‚| jd|ƒ}tj|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 zTemplate.open_wc C s t j| j||ƒƒS )N)r) Úsystemr( )r ÚinfileÚoutfiler r r Úcopyª s z Template.copyc C s( t || j|ƒ}| jr$t|ƒ d| }|S )Nzset -x; )r( r r Úprint)r r, r- r r r r r( s zTemplate.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 sÎ g }x"|D ]\}}|j d||dgƒ q W |s>|j ddddgƒ |d dd… \}}|d dkrx| rx|jdddddgƒ | |d d<