o
    *b                     @   s6   d dl mZmZ d dlZd dlZG dd deeZdS )    )PluginIndependentPluginNc                   @   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  z$t | j}|jdks|jtj@ s|jtj@ r#| d| j  W d S W n ty6   | d| j  Y d S w t 	| jD ]\}}}|D ]{}| 
||}| d|  z\t|  D ]Q}t| dksk|drlq\|dr| }d }	t|dkrzt|d }	W n ty   | d||f  Y nw | j|d dd  |	d	 q\| j||d
 q\W qD ty   | d|  Y qDw q=d S )Nr   z@Skipping sos extras as %s has too wide permissions or ownership.z"can't stat %s, skipping sos extrasz#Collecting data from extras file %s#:   zFCan't decode integer sizelimit on line '%s' in file %s, using default.)Z	sizelimit)Zsubdirzunable to read extras file %s)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)
selfstpathZdirlistZfilelistfZ_filelineZwordslimit r    ?/usr/lib/python3/dist-packages/sos/report/plugins/sos_extras.pysetup.   sV   


zSosExtras.setupN)__name__
__module____qualname__Z
short_descZplugin_namer
   filesr"   r    r    r    r!   r      s    r   )Zsos.report.pluginsr   r   r   r	   r   r    r    r    r!   <module>   s   