
    x[h                         S SK r S SKJrJrJrJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJr  \ R                  " \5      r " S S\R$                  5      rg)	    N)distroshelperssubputil)PackageList)HostnameConf)CLOUDINIT_NETPLAN_FILE)
PER_ALWAYSPER_INSTANCEc                       \ rS rSrSrS/rS\SSS.0rS rSS
 jr	S\
4S jrS rS rS rSS jrS rS rSS jrSS.S jrSrg	)Distro   z/etc/locale.gen	systemctlnetplanz# generated by cloud-init
T)netplan_pathnetplan_headerpostcmdsc                     [         R                  R                  XX#5        [        R                  " U5      U l        SU l        SUS'   g )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   Distro.__init__   s9    C7 u-#M    Nc                 4   Ub  US:w  a  [         R                  SU5        [        R                  " 5       SU-  S/n[        R                  " U R
                  SR                  U5      5        [        R                  " S/SS9  [        R                  " S	S
U/SS9  g )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_localeDistro.apply_locale&   s    &,>">KK, &!	
 	**DIIe,<=		<.%0 			;f5uEr"   pkglistc                 D    U R                  5         U R                  SUS9  g )Nr$   )pkgs)update_package_sourcespackage_command)r   r4   s     r    install_packagesDistro.install_packages9   s!    ##%Rg.r"   c                 R   S n U R                  U5      nU(       d  [        S5      nUR                  U5        [        R                  " U[        U5      SSS9  g ! [         aC    [        R                  " U R                  SS5      nU(       a   Ny[
        R                  S5         g f = f)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confr<   s        r    _write_hostnameDistro._write_hostname=   s    	 ++H5D #D(##d)3UC  
	#'#;#;		14$  $N 
	s   A 3B&B&%B&c                 T    U R                  U R                  5      nU R                  U4$ N)_read_hostnamehostname_conf_fn)r   sys_hostnames     r    _read_system_hostnameDistro._read_system_hostnameS   s)    **4+@+@A%%|44r"   c                 d    [        [        R                  " U5      5      nUR                  5         U$ rM   )r   r   load_text_fileparse)r   rH   rI   s      r    r@   Distro._read_hostname_confW   s%    D//9:

r"   c                 x    S n U R                  U5      nUR                  nU(       d  U$ U$ ! [         a     Nf = frM   )r@   rG   rA   )r   rH   defaultrG   rI   s        r    rN   Distro._read_hostname\   sH    	++H5D}}H N	  		s   , 
99c                     [         R                  SU5         [        R                  " SSSU/5        g ! [        R                   a    [        R
                  " [         SU5         g f = f)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   rG   s     r    _apply_hostnameDistro._apply_hostnamei   sW    		@(	
	II}m^XNO)) 	KKM	s   3 0A&%A&c                 J    [         R                  " XR                  U5      S9  g )N)tztz_file)r   set_etc_timezone_find_tz_file)r   rb   s     r    set_timezoneDistro.set_timezonev   s      B0B0B20FGr"   c                    Uc  / n/ SQnU(       a'  [        U[        5      (       a  UR                  U5        O-U(       a&  [        U[        5      (       a  UR	                  U5        US:X  a  SnU(       a  UR                  U5        [
        R                  " SU5      nUR	                  U5        [        R                  " USS9  g )N)pacmanz-Syz--quietz--noconfirmupgradez-uz%s-%sFr&   )
isinstancerF   appendlistextendr   expand_package_listr   )r   commandargsr6   cmdr4   s         r    r8   Distro.package_commandy   s    <D9 JtS))JJtjt,,JJtiGJJw**7D9

7 			#u%r"   F)forcec                t    U R                   R                  SU R                  S/U(       a  [        O[        S9  g )Nzupdate-sourcesz-y)freq)r   runr8   r
   r   )r   rt   s     r    r7   Distro.update_package_sources   s1      F$,	 	 	
r"   )r   r   rM   )NN)__name__
__module____qualname____firstlineno__r-   init_cmdr	   renderer_configsr   r2   r   r9   rJ   rQ   r@   rN   r_   rf   r8   r7   __static_attributes__ r"   r    r   r      sr    %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   	getLoggerry   r)   r   r   r"   r    <module>r      s>     2 2 ) ; 8 7!D
W^^ D
r"   