Ë
    i©¹dê   ã                   ó¨   — d Z dZddlZddlZddlmZ ddlmZ ddlZdZ	dZ
 ej                  e
e	«       d„ ZeZ	 e  G d	„ d
«      Zy# e$ r eZY Œw xY w)zu
This module houses the i18n setup and message function. The default is to use
gettext to internationalize messages.
z4.5.6é    N)ÚArgumentParser)ÚSosListOptionz/usr/share/localeÚsosc                 ó6   — t        j                  t        | «      S ©N)ÚgettextÚdgettextÚgettext_app)Úmsgs    ú./usr/lib/python3/dist-packages/sos/__init__.pyÚ_defaultr      s   € Ü×ÑœK¨Ó-Ð-ó    c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚSoSaR  Main entrypoint for sos from the command line

    Upon intialization, this class loads the basic option parser which will
    include the options shared by support components/subcommands. This is also
    where all subcommands present in the local installation are discovered,
    loaded, and if a matching one is found, intialized.
    c                 óÀ  — || _         dd l}dd l}dd l}|j                  j
                  dgf|j                  j                  ddgf|j                  j                  g fdœ| _
        	 dd l}|j                  j                  dgf| j                  d<   d
}| j                  D ]i  }| j                  |   d   }|j)                  d|«       dj+                  |«      }| j                  |   d   j,                  }|dj/                  ||¬«      z  }Œk d}	|	|z   }	d}
t1        |	|
¬«      | _        | j2                  j5                  ddt6        «       | j2                  j9                  ddd¬«      | _        d| j:                  _        | j                  D ]™  }| j:                  j?                  || j                  |   d   d|z  ¬«      }d|z  |_         |j5                  ddt6        «       | jC                  |«       | j                  |   d   jE                  |¬«       |jG                  |¬«       Œ› | j2                  jI                  | j                   «      | _%        | jM                  «        y # t        $ rx}dd l}d|j                   v r&|j"                  j$                  g f| j                  d<   n5d	|j                   v r&|j"                  j&                  g f| j                  d<   n‚ Y d }~�ŒId }~ww xY w)Nr   ÚrepÚcleanerÚmask)ÚreportÚcleanÚhelpÚ	collectorÚcollectzsos.collectorÚpexpectÚ é   z, z	{com:<30}{desc}
)ÚcomÚdescz6%(prog)s <component> [options]

Available components:
z1See `sos <component> --help` for more information)ÚusageÚepilogÚactionÚextendÚ	componentzsos component to run)ÚdestÚmetavarr   Tzsos %s)ÚaliasesÚprogzsos %s [options])Úparser)r#   )'ÚcmdlineÚ
sos.reportÚsos.cleanerÚsos.helpr   Ú	SoSReportr   Ú
SoSCleanerr   Ú	SoSHelperÚ_componentsÚsos.collectorr   ÚSoSCollectorÚModuleNotFoundErrorÚsos.missingr   ÚmissingÚMissingCollectÚMissingPexpectÚinsertÚjoinr   Úformatr   r(   Úregisterr   Úadd_subparsersÚ
subparsersÚrequiredÚ
add_parserr   Ú_add_common_optionsÚadd_parser_optionsÚset_defaultsÚ
parse_argsÚargsÚ_init_component)ÚselfrD   r   ÚerrÚ_com_stringr   r&   Ú_comr   Úusage_stringr    ÚcompÚ_com_subparsers                r   Ú__init__zSoS.__init__5   sÀ  € ØˆŒó 	ÛÛà—z‘z×+Ñ+¨e¨WÐ5Ø—k‘k×,Ñ,¨y¸&Ð.AÐBØ—X‘X×'Ñ'¨Ð,ñ
ˆÔð	Û Ø+.¯=©=×+EÑ+EØ,7¨=ð+:ˆD×Ñ˜YÑ'ð ˆØ×#Ñ#ò 	ˆCØ×&Ñ& sÑ+¨AÑ.ˆGØ�N‰N˜1˜cÔ"Ø—9‘9˜WÓ%ˆDØ×#Ñ# CÑ(¨Ñ+×0Ñ0ˆDØØ%×,Ñ,°¸DÐ,ÓAñ‰Kð	ð2ˆà# kÑ1ˆØEˆÜ$¨<ÀÔGˆŒØ�‰×Ñ˜X x´Ô?àŸ+™+×4Ñ4ØØØ'ð 5ó 
ˆŒð
 $(ˆ�‰Ô ð ×$Ñ$ò 
	8ˆDØ!Ÿ_™_×7Ñ7ØØ×(Ñ(¨Ñ.¨qÑ1Ø ‘_ð 8ó ˆNð
 $6¸Ñ#<ˆNÔ Ø×#Ñ# H¨h¼ÔFØ×$Ñ$ ^Ô4Ø×Ñ˜TÑ" 1Ñ%×8Ñ8ÀÐ8ÔOØ×'Ñ'°$Ð'Õ7ð
	8ð —K‘K×*Ñ*¨4¯<©<Ó8ˆŒ	Ø×ÑÕøôc #ò 
	ÛØ #§'¡'Ñ)à/2¯{©{×/IÑ/IÈ2Ð.N�× Ñ  Ò+Ø˜cŸg™gÑ%à/2¯{©{×/IÑ/IÈ2Ð.N�× Ñ  Ò+ð ÿùð
	ús   Á%*I É	KÉ%A-KËKc           	      ód  — |j                  d«      }|j                  dddd¬«       |j                  dt        dd	d
d¬«       |j                  dddd¬«       |j                  dddddd¬«       |j                  dddddd¬«       |j                  ddddd¬«       |j                  dddd d!t        d"¬#«       |j                  d$d%d&d'd(d)¬«       |j                  d*d+d,g d-¢d.¬/«       |j	                  «       }|j                  d0ddd1¬«       |j                  d2d3¬4«       |j                  d5d6¬4«       y)7z@Adds the options shared across components to the parser
        zGlobal Optionsz--batchFÚ
store_truezDo not prompt interactively)Údefaultr!   r   z--config-fileÚstoreÚconfig_filez/etc/sos/sos.confz$specify alternate configuration file)Útyper!   r$   rP   r   z--debugÚdebugz6enable interactive debugging using the python debugger)r!   r$   r   z-qz--quietÚquietzonly print fatal errors)r!   r$   rP   r   z-sz	--sysrootÚsysrootNz!system rootdir path (default='/')z	--tmp-dirÚtmp_dirz%specify alternate temporary directoryz-tz	--threadsÚthreadsé   zNumber of threads to use)r!   r$   rP   rS   r   z-vz	--verboseÚcountÚ	verbosityr   zincrease verbosityz-zz--compression-typeÚcompression_type)ÚautoÚgzipÚxzzcompression technology to use)r$   Úchoicesr   z	--encryptz_Encrypt the archive, either prompting for a password/key or referencing an environment variablez--encrypt-keyz(Encrypt the archive using a GPG key-pair)r   z--encrypt-passz$Encrypt the archive using a password)Úadd_argument_groupÚadd_argumentÚstrÚintÚadd_mutually_exclusive_group)rF   r(   Ú
global_grpÚencrypt_grps       r   r@   zSoS._add_common_options~   sµ  € ð ×.Ñ.Ð/?Ó@ˆ
Ø×Ñ 	°5ÀØ%Bð 	 ô 	Dà×Ñ ´cÀ'Ø%2Ø(;Ø%Kð 	 ô 	Mð 	×Ñ 	°,ÀWð&7ð 	 ô 	8ð 	×Ñ  i¸Ø%,°eØ%>ð 	 ô 	@ð 	×Ñ  k¸'Ø%.¸Ø%Hð 	 ô 	Jð 	×Ñ °GÀ)Ø(,Ø%Lð 	 ô 	Nð 	×Ñ  k¸'Ø%.¸ÄØ%?ð 	 ô 	Að 	×Ñ  k¸'Ø%0¸!Ø%9ð 	 ô 	;ð 	×Ñ Ð&:Ø%7Ú(>Ø%Dð 	 ô 	Fð !×=Ñ=Ó?ˆØ× Ñ  °eØ(4ð(Að 	!ô 	Cð
 	× Ñ  ð'1ð 	!ô 	2ð 	× Ñ Ð!1Ø&Lð 	!õ 	Nr   c                 ó  — | j                   j                  }|| j                  j                  «       vrt	        d|z  «       	 | j                  |   d   }|j
                  r"t        j                  «       dk(  st        d«      ‚ || j                  | j                   | j                  «      | _        y# t        $ rH}t	        d|›d|›�«       | j                   j                  r|‚t        j                  d«       Y d}~yd}~ww xY w)znDetermine which component has been requested by the user, and then
        initialize that component.
        z!Unknown subcommand '%s' specifiedr   z*Component must be run with root privilegeszCould not initialize 'z': r   N)rD   r#   r0   ÚkeysÚprintÚroot_requiredÚosÚgetuidÚ	Exceptionr(   r)   Ú
_componentrT   ÚsysÚexit)rF   rI   Ú_to_loadrG   s       r   rE   zSoS._init_component­   sÊ   € ð �y‰y×"Ñ"ˆØ�t×'Ñ'×,Ñ,Ó.Ñ.ÜÐ5¸Ñ<Ô=ð
	Ø×'Ñ'¨Ñ-¨aÑ0ˆHØ×%Ò%¬b¯i©i«k¸QÒ.>ÜÐ LÓMÐMÙ& t§{¡{°D·I±I¸t¿|¹|ÓLˆD�Oøäò 	Ý²T¹3Ð?Ô@Ø�y‰y�ŠØ�	Ü�H‰H�Q�K‰Kûð		ús   ÁA-B0 Â0	DÂ9>C<Ã<Dc                 ó8   — | j                   j                  «        y r   )ro   Úexecute)rF   s    r   rt   zSoS.executeÀ   s   € Ø�‰×ÑÕ!r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rM   r@   rE   rt   © r   r   r   r   ,   s   „ ñòGòR-Nò^ó&"r   r   )rx   Ú__version__rl   rp   Úargparser   Úsos.optionsr   r   Úgettext_dirr
   Úbindtextdomainr   Ú_sosr3   Ú	NameErrorÚImportErrorr   ry   r   r   ú<module>r‚      ss   ðñð €ã 	Û 
å #Ý %ã Ø!€Ø€Ø €× Ñ �{ KÔ 0ò.ð €ð&Ù÷
U"ò U"øð	 ò &Ø%Òð&ús   ºA ÁAÁA