o
    O6ufó  ã                   @   s6   d dl Z d dlZd dlmZmZ G dd„ deeƒZdS )é    N)ÚPluginÚIndependentPluginc                   @   s(   e Zd ZdZ	 dZdZefZdd„ ZdS )Ú	SosExtrasz/Collect extra data defined in /etc/sos/extras.dÚ
sos_extrasz/etc/sos/extras.d/c                 C   sÂ  z&t  | j¡}|jdks|jtj@ s|jtj@ r%|  d| j› d�¡ W d S W n ty:   |  d| j› d�¡ Y d S w t  	| j¡D ]�\}}}|D ]•}|  
||¡}|  d|› �¡ ztt|ddd	��c}| ¡  ¡ D ]T}t| ¡ ƒdksv| d
¡rwqg| d¡r´| ¡ }	d }
t|	ƒdkr¦zt|	d ƒ}
W n ty¥   |  d|› d|› d�¡ Y nw | j|	d dd … |
d� qg| j||d� qgW d   ƒ n1 sÆw   Y  W qH tyÝ   |  d|› �¡ Y qHw qAd S )Nr   zSkipping sos extras as z' has too wide permissions or ownership.zcan't stat z, skipping sos extrasz!Collecting data from extras file ÚrzUTF-8)Úencodingú#ú:é   zCan't decode size limit on linez in z, using default)Ú	sizelimit)Úsubdirzunable to read extras file )ÚosÚstatÚ
extras_dirÚst_uidÚst_modeÚS_IWGRPÚS_IWOTHÚ	_log_warnÚOSErrorÚwalkÚ	path_joinÚopenÚreadÚ
splitlinesÚlenÚsplitÚ
startswithÚintÚ
ValueErrorÚadd_copy_specÚadd_cmd_outputÚIOError)ÚselfÚst_resÚpathÚ_ÚfilelistÚfileÚ_fileÚsfileÚlineÚwordsÚlimit© r.   ú?/usr/lib/python3/dist-packages/sos/report/plugins/sos_extras.pyÚsetup.   s`   
ÿüý
ÿÿÿÿÿëÿ€ÿäÿzSosExtras.setupN)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_namer   Úfilesr0   r.   r.   r.   r/   r      s    r   )r   r   Úsos.report.pluginsr   r   r   r.   r.   r.   r/   Ú<module>   s   