Ë
    x[h~  ã                   óš   — d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZmZ  e j                  e«      Z G d„ dej                   «      Zy)é    N)ÚdistrosÚhelpersÚsubpÚutil)ÚPackageList)ÚHostnameConf)Ú
PER_ALWAYSÚPER_INSTANCEc                   ót   — e Zd ZdZdZddgZd„ Zdd„Zdefd	„Z	d
„ Z
d„ Zed„ «       Zdd„Zd„ Zdd„Zddœd„Zy)ÚDistroz/etc/locale.genzen_US.UTF-8zC.UTF8 UTF-8zen_US.UTF-8 UTF-8c                 óÐ   — t         j                  j                  | |||«       t        j                  «       rd| _        nd| _        t        j                  |«      | _        d| _        y )Nz/etc/hostnamez/etc/conf.d/hostnameÚgentoo)	r   r   Ú__init__Úuses_systemdÚhostname_conf_fnr   ÚRunnersÚ_runnerÚosfamily)ÚselfÚnameÚcfgÚpathss       ú:/usr/lib/python3/dist-packages/cloudinit/distros/gentoo.pyr   zDistro.__init__   sO   € Ü�‰×Ñ  d¨C°Ô7ä×ÑÔ!Ø$3ˆDÕ!à$:ˆDÔ!ô
 —‘ uÓ-ˆŒØ ˆ�ó    Nc                 óô   — t        j                  | j                  dj                  | j                  «      d¬«       t        j
                  dgd¬«       t        j
                  ddd	| j                  gd¬«       y
)z…Locales need to be added to /etc/locale.gen and generated prior
        to selection. Default to en_US.UTF-8 for simplicity.
        ú
i„  )Úmodez
locale-genF©ÚcaptureÚeselectÚlocaleÚsetN)r   Ú
write_fileÚlocale_gen_fnÚjoinÚlocalesr   Údefault_locale)r   Ú_Úout_fns      r   Úapply_localezDistro.apply_locale+   s[   € ô 	�‰˜×*Ñ*¨D¯I©I°d·l±lÓ,CÈ#ÕNô 	�	‰	�<�.¨%Õ0ô 	�	‰	Ø˜ %¨×)<Ñ)<Ð=Àuö	
r   Úpkglistc                 óJ   — | j                  «        | j                  d|¬«       y )NÚ )Úpkgs)Úupdate_package_sourcesÚpackage_command)r   r+   s     r   Úinstall_packageszDistro.install_packages9   s!   € Ø×#Ñ#Ô%Ø×Ñ˜R gÐÕ.r   c                 óŽ  — d }	 | j                  |«      }|st        d«      }t        j                  «       r|j                  |«       n|j                  d|z  «       t        j                  |t        |«      d«       y # t        $ r> t        j                  | j                  dd«      }|rnt
        j                  d«       Y y Y Œ®w xY w)NÚcreate_hostname_fileTz8create_hostname_file is False; hostname file not createdr-   zhostname="%s"i¤  )Ú_read_hostname_confÚIOErrorr   Úget_cfg_option_boolÚ_cfgÚLOGÚinfor   r   r   Úset_hostnamer#   Ústr)r   ÚhostnameÚfilenameÚconfr3   s        r   Ú_write_hostnamezDistro._write_hostname=   sÁ   € Øˆð	ð ×+Ñ+¨HÓ5ˆDñ Ü Ó#ˆDä×ÑÔ!ð ×Ñ˜hÕ'ð
 ×Ñ˜o°Ñ8Ô9ä�‰˜¤# d£)¨UÕ3øô3 ò 
	Ü#'×#;Ñ#;Ø—	‘	Ð1°4ó$Ð ñ $Øä—‘ØNôñ ñ ð
	ús   „A= Á=ACÃCc                 óT   — | j                  | j                  «      }| j                  |fS ©N)Ú_read_hostnamer   )r   Úsys_hostnames     r   Ú_read_system_hostnamezDistro._read_system_hostname^   s)   € Ø×*Ñ*¨4×+@Ñ+@ÓAˆØ×$Ñ$ lÐ2Ð2r   c                 ób   — t        t        j                  | «      «      }|j                  «        |S rA   )r   r   Úload_text_fileÚparse)r=   r>   s     r   r4   zDistro._read_hostname_confb   s%   € äœD×/Ñ/°Ó9Ó:ˆØ�
‰
ŒØˆr   c                 ól   — d }	 | j                  |«      }|j                  }|s|S |S # t        $ r Y Œw xY wrA   )r4   r<   r5   )r   r=   Údefaultr<   r>   s        r   rB   zDistro._read_hostnameh   sH   € Øˆð	Ø×+Ñ+¨HÓ5ˆDØ—}‘}ˆHñ ØˆNØˆøô	 ò 	Ùð	ús   „' §	3²3c                 óP   — t        j                  || j                  |«      ¬«       y )N)ÚtzÚtz_file)r   Úset_etc_timezoneÚ_find_tz_file)r   rK   s     r   Úset_timezonezDistro.set_timezones   s   € Ü× Ñ  B°×0BÑ0BÀ2Ó0FÖGr   c                 ó–  — dg}|j                  d«       |dk(  r|j                  ddg«       n…|€g }|r"t        |t        «      r|j                  |«       n#|r!t        |t        «      r|j                  |«       |r|j                  |«       t        j                  d|«      }|j                  |«       t        j                  |d¬«       y )	NÚemergez--quietÚupgradez--updateÚworldz%s-%sFr   )ÚappendÚextendÚ
isinstancer;   Úlistr   Úexpand_package_listr   )r   ÚcommandÚargsr.   Úcmdr+   s         r   r0   zDistro.package_commandv   s¥   € Øˆjˆà�
‰
�9Ôà�iÒØ�J‰J˜
 GÐ,Õ-àˆ|Ø�áœ
 4¬Ô-Ø—
‘
˜4Õ Ùœ* T¬4Ô0Ø—
‘
˜4Ô áØ—
‘
˜7Ô#ä×.Ñ.¨w¸Ó=ˆGØ�J‰J�wÔô 	�	‰	�#˜uÖ%r   F)Úforcec                ó|   — | j                   j                  d| j                  dg|rt        ¬«       y t        ¬«       y )Nzupdate-sourcesz--sync)Úfreq)r   Úrunr0   r	   r
   )r   r\   s     r   r/   zDistro.update_package_sources�   s>   € Ø�‰×ÑØØ× Ñ ØˆJÙ$”ð	 	õ 	
ô +7ð	 	õ 	
r   rA   )NN)Ú__name__Ú
__module__Ú__qualname__r$   r'   r&   r   r*   r   r1   r?   rD   Ústaticmethodr4   rB   rO   r0   r/   © r   r   r   r      sh   „ Ø%€MØ"€Nð Ð2Ð3€Gò!ó
ð/¨ó /ò4òB3ð ñó ðó
	òHó&ð2 /4õ 
r   r   )ÚloggingÚ	cloudinitr   r   r   r   Úcloudinit.distrosr   Ú"cloudinit.distros.parsers.hostnamer   Úcloudinit.settingsr	   r
   Ú	getLoggerr`   r8   r   rd   r   r   ú<module>rk      s=   ðó ç 2Ó 2Ý )Ý ;ß 7à€g×Ñ˜Ó!€ô@
ˆW�^‰^õ @
r   