
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
Ù¥ˆc  ã               @   s*   d dl Z d dlZd dlZG dd„ dƒZdS )é    Nc               @   s>   e Zd ZdZejdƒZejdƒZdd„ Zdd„ Z	ddd	„Z
d
S )ÚConfigSnippetFz\${\??(?P<key>[\w-]*)}z\${\?[\w-]*}c          	   C   s*   t |dƒ�}|jƒ | _W d Q R X || _d S )NÚr)ÚopenÚreadÚtemplateÚdestination)Úselfr   r   Úf© r
   ú./usr/lib/python3.6/authcompat_ConfigSnippet.pyÚ__init__!   s    zConfigSnippet.__init__c       
      C   sæ   | j jdƒ}g }xTt|ƒD ]H\}}x>| jj|ƒD ].}|jdƒ}||ksR|| d kr0|j|ƒ P q0W qW xt|dd�D ]
}||= qtW dj|ƒ}| j	j
d|ƒ}xF|jƒ D ]:\}}	|	d kr¶q¤t|	ƒtkrÎ|	rÊdnd}	|jd| |	ƒ}q¤W |S )	NÚ
ÚkeyT)ÚreverseÚ ÚtrueZfalsez${%s})r   ÚsplitÚ	enumerateÚ	AllKeysREÚfinditerÚgroupÚappendÚsortedÚjoinÚDummyKeysREÚsubÚitemsÚtypeÚboolÚreplace)
r   ÚvaluesÚlinesÚremoveÚidxÚlineÚmatchr   ÚoutputÚvaluer
   r
   r   Úgenerate'   s&    




zConfigSnippet.generatec             C   sÆ   | j |ƒ}| jr8td| j ƒ t|ƒ td| j ƒ d S tjj| jƒ}tjj|ƒs ytj|ƒ W n> t	k
rž } z"|j
t
jkrŒtjj|ƒrŒn‚ W Y d d }~X nX t| jdƒ�}|j|ƒ W d Q R X d S )Nz+========== BEGIN Content of [%s] ==========z,========== END   Content of [%s] ==========
Úw)r(   ÚTESTÚprintr   ÚosÚpathÚdirnameÚexistsÚmakedirsÚOSErrorÚerrnoZEEXISTÚisdirr   Úwrite)r   r    Z	to_stdoutr&   r.   Z	exceptionr	   r
   r
   r   r4   H   s     
zConfigSnippet.writeN)F)Ú__name__Ú
__module__Ú__qualname__r*   ÚreÚcompiler   r   r   r(   r4   r
   r
   r
   r   r      s   

!r   )r2   r,   r8   r   r
   r
   r
   r   Ú<module>   s   