U
    L¬÷dÂ	  ã                   @   s*   d dl mZ d dlmZ G dd„ dƒZdS )é    )ÚStringIO)Úchop_commentc                   @   s@   e Zd Zdd„ Zdd„ Zdd„ Zedd„ ƒZd	d
„ Zdd„ Z	dS )ÚHostnameConfc                 C   s   || _ d | _d S ©N)Ú_textÚ	_contents)ÚselfÚtext© r
   úD/usr/lib/python3/dist-packages/cloudinit/distros/parsers/hostname.pyÚ__init__   s    zHostnameConf.__init__c                 C   s   | j d kr|  | j¡| _ d S r   )r   Ú_parser   )r   r
   r
   r   Úparse   s    
zHostnameConf.parsec                 C   s–   |   ¡  tƒ }| jD ]b\}}|dkr8| d|d  ¡ q|dkrT| d|d  ¡ q|dkr|\}}| d||f ¡ q| ¡ }| d¡s’|d7 }|S )NÚblankz%s
r   Úall_commentÚhostnamez%s%s
Ú
)r   r   r   ÚwriteÚgetvalueÚendswith)r   ÚcontentsÚ	line_typeÚ
componentsr   Útailr
   r
   r   Ú__str__   s    
zHostnameConf.__str__c                 C   s0   |   ¡  | jD ]\}}|dkr|d   S qd S )Nr   r   )r   r   )r   r   r   r
   r
   r   r   '   s
    zHostnameConf.hostnamec                 C   sd   |  ¡ }|sd S |  ¡  d}| jD ] \}}|dkr"t|ƒ|d< d}q"|s`| j dt|ƒdgf¡ d S )NFr   r   TÚ )Ústripr   r   ÚstrÚappend)r   Zyour_hostnameZreplacedr   r   r
   r
   r   Úset_hostname/   s    zHostnameConf.set_hostnamec                 C   sš   g }t ƒ }| ¡ D ]j}t| ¡ ƒs4| d|gf¡ qt| ¡ dƒ\}}t|ƒs`| d|gf¡ q| d||gf¡ | |¡ qt|ƒdkr–td| ƒ‚|S )Nr   ú#r   r   é   zMultiple hostnames (%s) found!)ÚsetÚ
splitlinesÚlenr   r   r   ÚaddÚIOError)r   r   ÚentriesZhostnames_foundÚlineÚheadr   r
   r
   r   r   <   s    zHostnameConf._parseN)
Ú__name__Ú
__module__Ú__qualname__r   r   r   Úpropertyr   r   r   r
   r
   r
   r   r      s   
r   N)Úior   Zcloudinit.distros.parsersr   r   r
   r
   r
   r   Ú<module>   s   