o
    ¦®Øf¥	  ã                   @   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 u r|  | j¡| _ d S d S r   )r   Ú_parser   )r   r
   r
   r   Úparse   s   
ÿzHostnameConf.parsec                 C   s–   |   ¡  tƒ }| jD ]1\}}|dkr| d|d  ¡ q
|dkr*| d|d  ¡ q
|dkr;|\}}| d||f ¡ q
| ¡ }| d¡sI|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   sh   |  ¡ }|sd S |  ¡  d}| jD ]\}}|dkr!t|ƒ|d< d}q|s2| j dt|ƒdgf¡ d S d S )NFr   r   TÚ )Ústripr   r   ÚstrÚappend)r   Úyour_hostnameÚreplacedr   r   r
   r
   r   Úset_hostname/   s   €ÿzHostnameConf.set_hostnamec                 C   sš   g }t ƒ }| ¡ D ]5}t| ¡ ƒs| d|gf¡ q	t| ¡ dƒ\}}t|ƒs0| d|gf¡ q	| d||gf¡ | |¡ q	t|ƒdkrKtd| ƒ‚|S )Nr   ú#r   r   é   zMultiple hostnames (%s) found!)ÚsetÚ
splitlinesÚlenr   r   r   ÚaddÚIOError)r   r   ÚentriesÚ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   Úcloudinit.distros.parsersr   r   r
   r
   r
   r   Ú<module>   s   