Ë
    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 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)ÚCLOUDINIT_NETPLAN_FILE)Ú
PER_ALWAYSÚPER_INSTANCEc                   óz   — e Zd ZdZdgZdedddœiZd„ Zdd	„Zd
e	fd„Z
d„ Zd„ Zd„ Zdd„Zd„ Zd„ Zdd„Zddœd„Zy)ÚDistroz/etc/locale.genÚ	systemctlÚnetplanz# generated by cloud-init
T)Únetplan_pathÚnetplan_headerÚpostcmdsc                 ó”   — t         j                  j                  | |||«       t        j                  |«      | _        d| _        d|d<   y )NÚarchÚsshdÚssh_svcname)r   r   Ú__init__r   ÚRunnersÚ_runnerÚosfamily)ÚselfÚnameÚcfgÚpathss       ú8/usr/lib/python3/dist-packages/cloudinit/distros/arch.pyr   zDistro.__init__   s=   € Ü�‰×Ñ  d¨C°Ô7ô —‘ uÓ-ˆŒØˆŒØ#ˆˆMÒó    Nc                 ó4  — |�|dk7  rt         j                  d|«       t        j                  «       d|z  dg}t        j                  | j
                  dj                  |«      «       t        j                  dgd¬«       t        j                  d	d
|gd¬«       y )Nz/etc/locale.confzFInvalid locale_configfile %s, only supported value is /etc/locale.confz%s UTF-8Ú ú
z
locale-genF©ÚcaptureÚ	localectlz
set-locale)ÚLOGÚwarningr   Úmake_headerÚ
write_fileÚlocale_gen_fnÚjoinr   )r   ÚlocaleÚout_fnÚliness       r   Úapply_localezDistro.apply_locale&   sŠ   € ØÐ &Ð,>Ò">Ü�K‰Kð,àôô ×ÑÓà˜&Ñ!Øð	
ˆô 	�‰˜×*Ñ*¨D¯I©I°eÓ,<Ô=Ü�	‰	�<�.¨%Õ0ô 	�	‰	�; ¨fÐ5¸uÖEr    Úpkglistc                 óJ   — | j                  «        | j                  d|¬«       y )Nr"   )Úpkgs)Úupdate_package_sourcesÚpackage_command)r   r1   s     r   Úinstall_packageszDistro.install_packages9   s!   € Ø×#Ñ#Ô%Ø×Ñ˜R gÐÕ.r    c                 ó@  — d }	 | j                  |«      }|st        d«      }|j                  |«       t        j                  |t        |«      d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"   Úwi¤  )ÚomodeÚmode)Ú_read_hostname_confÚIOErrorr   Úget_cfg_option_boolÚ_cfgr'   Úinfor   Úset_hostnamer*   Ústr)r   ÚhostnameÚfilenameÚconfr8   s        r   Ú_write_hostnamezDistro._write_hostname=   s    € Øˆð	ð ×+Ñ+¨HÓ5ˆDñ Ü Ó#ˆDØ×Ñ˜(Ô#Ü�‰˜¤# d£)°3¸UÖCøô ò 
	Ü#'×#;Ñ#;Ø—	‘	Ð1°4ó$Ð ñ $Øä—‘ØNôñ ñ ð
	ús   „A ÁABÂBc                 óT   — | j                  | j                  «      }| j                  |fS ©N)Ú_read_hostnameÚhostname_conf_fn)r   Úsys_hostnames     r   Ú_read_system_hostnamezDistro._read_system_hostnameS   s)   € Ø×*Ñ*¨4×+@Ñ+@ÓAˆØ×%Ñ% |Ð4Ð4r    c                 ób   — t        t        j                  |«      «      }|j                  «        |S rH   )r   r   Úload_text_fileÚparse)r   rD   rE   s      r   r<   zDistro._read_hostname_confW   s%   € ÜœD×/Ñ/°Ó9Ó:ˆØ�
‰
ŒØˆr    c                 ól   — d }	 | j                  |«      }|j                  }|s|S |S # t        $ r Y Œw xY wrH   )r<   rC   r=   )r   rD   ÚdefaultrC   rE   s        r   rI   zDistro._read_hostname\   sH   € Øˆð	Ø×+Ñ+¨HÓ5ˆDØ—}‘}ˆHñ ØˆNØˆøô	 ò 	Ùð	ús   „' §	3²3c                 óÌ   — t         j                  d|«       	 t        j                  ddd|g«       y # t        j                  $ r t	        j
                  t         d|«       Y y w xY w)Nz2Non-persistently setting the system hostname to %sÚhostnamectlz--transientzset-hostnamez;Failed to non-persistently adjust the system hostname to %s)r'   Údebugr   ÚProcessExecutionErrorr   Úlogexc)r   rC   s     r   Ú_apply_hostnamezDistro._apply_hostnamei   sW   € Ü�	‰	Ø@À(ô	
ð	Ü�I‰I�} m°^ÀXÐNÕOøÜ×)Ñ)ò 	Ü�K‰KÜØMØöð	ús   ˜2 ².A#Á"A#c                 óP   — t        j                  || j                  |«      ¬«       y )N)ÚtzÚtz_file)r   Úset_etc_timezoneÚ_find_tz_file)r   rY   s     r   Úset_timezonezDistro.set_timezonev   s   € Ü× Ñ  B°×0BÑ0BÀ2Ó0FÖGr    c                 óR  — |€g }g d¢}|r"t        |t        «      r|j                  |«       n#|r!t        |t        «      r|j	                  |«       |dk(  rd}|r|j                  |«       t        j                  d|«      }|j	                  |«       t        j                  |d¬«       y )N)Úpacmanz-Syz--quietz--noconfirmÚupgradez-uz%s-%sFr$   )Ú
isinstancerB   ÚappendÚlistÚextendr   Úexpand_package_listr   )r   ÚcommandÚargsr3   Úcmdr1   s         r   r5   zDistro.package_commandy   s�   € Øˆ<ØˆDâ9ˆñ ”J˜t¤SÔ)Ø�J‰J�tÕÙ”j ¤tÔ,Ø�J‰J�tÔà�iÒØˆGÙØ�J‰J�wÔä×*Ñ*¨7°DÓ9ˆØ�
‰
�7Ôô 	�	‰	�#˜uÖ%r    F)Úforcec                ó|   — | j                   j                  d| j                  dg|rt        ¬«       y t        ¬«       y )Nzupdate-sourcesz-y)Úfreq)r   Úrunr5   r
   r   )r   ri   s     r   r4   zDistro.update_package_sources�   s>   € Ø�‰×ÑØØ× Ñ ØˆFÙ$”ð	 	õ 	
ô +7ð	 	õ 	
r    rH   )NN)Ú__name__Ú
__module__Ú__qualname__r+   Úinit_cmdr	   Úrenderer_configsr   r0   r   r6   rF   rL   r<   rI   rW   r]   r5   r4   © r    r   r   r      sm   „ Ø%€MØˆ}€HàØ2Ø;Øñ
ðÐò$óFð&/¨ó /òDò,5òó
	òòHó&ð. /4õ 
r    r   )ÚloggingÚ	cloudinitr   r   r   r   Úcloudinit.distrosr   Ú"cloudinit.distros.parsers.hostnamer   Úcloudinit.net.netplanr	   Úcloudinit.settingsr
   r   Ú	getLoggerrm   r'   r   rr   r    r   ú<module>rz      s@   ðó ç 2Ó 2Ý )Ý ;Ý 8ß 7à€g×Ñ˜Ó!€ôD
ˆW�^‰^õ D
r    