U
    -Ø_gó  ã                   @   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.dZ
sos_extrasz/etc/sos/extras.d/c                 C   sÂ  zLt  | j¡}|jdks0|jtj@ s0|jtj@ rJ|  d| j› d¡ W d S W n* tk
rv   |  d| j› d¡ Y d S X t  	| j¡D ]6\}}}|D ]$}|  
||¡}|  d|› ¡ zÜt|ddd	Ä}| ¡  ¡ D ]°}t| ¡ ƒdksÔ| d
¡rôqÔ| d¡rv| ¡ }	d }
t|	ƒdkrZzt|	d ƒ}
W n. tk
rX   |  d|› d|› d¡ Y nX | j|	d dd … |
d qÔ| j||d qÔW 5 Q R X W q” tk
r¸   |  d|› ¡ Y q”X q”q„d 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)Z	sizelimit)Zsubdirzunable to read extras file )ÚosÚstatÚ
extras_dirÚst_uidÚst_modeÚS_IWGRPÚS_IWOTHZ	_log_warnÚOSErrorÚwalkZ	path_joinÚopenÚreadÚ
splitlinesÚlenÚsplitÚ
startswithÚintÚ
ValueErrorZadd_copy_specZadd_cmd_outputÚIOError)ÚselfZst_resÚpathÚ_ZfilelistÚfileZ_fileZsfileÚlineZwordsÚlimit© r"   ú?/usr/lib/python3/dist-packages/sos/report/plugins/sos_extras.pyÚsetup.   sF    
ÿ

ÿ
ÿzSosExtras.setupN)Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_namer   Úfilesr$   r"   r"   r"   r#   r      s
   r   )r
   r   Zsos.report.pluginsr   r   r   r"   r"   r"   r#   Ú<module>	   s   