
    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Jr  \ R                  " \5      r " S S\R                   5      rg)    N)distroshelperssubputil)PackageList)HostnameConf)
PER_ALWAYSPER_INSTANCEc                       \ rS rSrSrSrSS/rS rSS jrS	\	4S
 jr
S rS r\S 5       rSS jrS rSS jrSS.S jrSrg)Distro   z/etc/locale.genzen_US.UTF-8zC.UTF8 UTF-8zen_US.UTF-8 UTF-8c                     [         R                  R                  XX#5        [         R                  " 5       (       a  SU l        OSU l        [
        R                  " U5      U l        SU l        g )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   Distro.__init__   sN    C7!!$3D!$:D!
 u-     Nc                     [         R                  " U R                  SR                  U R                  5      SS9  [
        R
                  " S/SS9  [
        R
                  " SSS	U R                  /SS9  g
)zuLocales 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_localeDistro.apply_locale+   s[     	**DIIdll,C#N 			<.%0 			%)<)<=u	
r   pkglistc                 D    U R                  5         U R                  SUS9  g )N )pkgs)update_package_sourcespackage_command)r   r.   s     r   install_packagesDistro.install_packages9   s!    ##%Rg.r   c                    S n U R                  U5      nU(       d  [        S5      n[        R                  " 5       (       a  UR                  U5        OUR                  SU-  5        [        R                  " U[        U5      S5        g ! [         aC    [        R                  " U R                  SS5      nU(       a   N[
        R                  S5         g f = f)Ncreate_hostname_fileTz8create_hostname_file is False; hostname file not createdr0   zhostname="%s"i  )_read_hostname_confIOErrorr   get_cfg_option_bool_cfgLOGinfor   r   r   set_hostnamer%   str)r   hostnamefilenameconfr7   s        r   _write_hostnameDistro._write_hostname=   s    	 ++H5D #D!! h'
 o89#d)U33  
	#'#;#;		14$  $N 
	s   B	 	3C>CCc                 T    U R                  U R                  5      nU R                  U4$ N)_read_hostnamer   )r   sys_hostnames     r   _read_system_hostnameDistro._read_system_hostname^   s)    **4+@+@A$$l22r   c                 d    [        [        R                  " U 5      5      nUR                  5         U$ rF   )r   r   load_text_fileparse)rA   rB   s     r   r8   Distro._read_hostname_confb   s%    D//9:

r   c                 x    S n U R                  U5      nUR                  nU(       d  U$ U$ ! [         a     Nf = frF   )r8   r@   r9   )r   rA   defaultr@   rB   s        r   rG   Distro._read_hostnameh   sH    	++H5D}}H N	  		s   , 
99c                 J    [         R                  " XR                  U5      S9  g )N)tztz_file)r   set_etc_timezone_find_tz_file)r   rS   s     r   set_timezoneDistro.set_timezones   s      B0B0B20FGr   c                    S/nUR                  S5        US:X  a  UR                  SS/5        OUc  / nU(       a'  [        U[        5      (       a  UR                  U5        O-U(       a&  [        U[        5      (       a  UR                  U5        U(       a  UR                  U5        [
        R                  " SU5      nUR                  U5        [        R                  " USS9  g )	Nemergez--quietupgradez--updateworldz%s-%sFr    )appendextend
isinstancer?   listr   expand_package_listr   )r   commandargsr1   cmdr.   s         r   r3   Distro.package_commandv   s    j

9iJJ
G,-|
4--

4 *T400

4 

7#..w=GJJw 			#u%r   F)forcec                t    U R                   R                  SU R                  S/U(       a  [        O[        S9  g )Nzupdate-sourcesz--sync)freq)r   runr3   r	   r
   )r   rf   s     r   r2   Distro.update_package_sources   s1      J$,	 	 	
r   )r   r   r   rF   )NN)__name__
__module____qualname____firstlineno__r&   r)   r(   r   r,   r   r4   rC   rI   staticmethodr8   rG   rW   r3   r2   __static_attributes__ r   r   r   r      sm    %M"N 23G!
/ /4B3  
	H&2 /4 
 
r   r   )logging	cloudinitr   r   r   r   cloudinit.distrosr   "cloudinit.distros.parsers.hostnamer   cloudinit.settingsr	   r
   	getLoggerrk   r<   r   rq   r   r   <module>rx      s;     2 2 ) ; 7!@
W^^ @
r   