o
    G%@iN                     @   s2   d dl Z d dlmZmZmZ G dd deeZdS )    N)PluginIndependentPlugin	PluginOptc                   @   s@   e Zd ZdZdZdZdZdZedddd	gZ	d
d Z
dd ZdS )CupszCUPS IPP print servicecups)hardware)r   zcups-browsedlprintzlegacy-printer-app)r   	userconfsFz6Changes whether plugin will collect user .cups configs)defaultdescc                 C   s~   |  ds| d | d | d | d n
| d | d | g d | g d	 |  d
r=|   d S d S )Nall_logsz/var/log/cups/access_logz/var/log/cups/error_logz/var/log/cups/page_logz/var/log/ipp-usb/main.logz/var/log/cupsz/var/log/ipp-usb)	z/etc/cups/*.confz/etc/cups/*.typesz/etc/cups/lpoptionsz/etc/cups/ppd/*.ppdz/etc/ipp-usb/z/etc/lprint.confz/etc/legacy-printer-app.confz/var/lib/lprint.statez!/var/lib/legacy-printer-app.state)z	lpstat -tz	lpstat -sz	lpstat -dr	   )
get_optionadd_copy_specadd_cmd_outputget_user_configs)self r   9/usr/lib/python3/dist-packages/sos/report/plugins/cups.pysetup   s   






z
Cups.setupc           
         s   t  }ddg}i }z,tdddd}|D ]}| dd \}}|||< qW d	   n1 s0w   Y  W n tyE   | d
 Y d	S w h d}|D ],}	|	j|v re||	j |v re| d|	j d qL| |	jd | 	 fdd|D  qLd	S )zS
        Iterate over .cups folders in user homes to capture config files.
        zclient.conf	lpoptionsz/proc/mountsrzUTF-8)encoding      NzCouldn't read /proc/mounts>   nfsnfs4autofszSkipping capture in z  because it's a remote directoryz.cupsc                    s   g | ]	}  d | qS )/r   ).0config_filehome_dirr   r   
<listcomp>\   s    z)Cups.get_user_configs.<locals>.<listcomp>)
pwdgetpwallopensplit	Exception
_log_errorpw_dir	_log_info	path_joinr   )
r   
users_dataconfig_filesfs_mount_infomounts_filelinefs_file	fs_vstypenon_local_fsuserr   r    r   r   =   s<   


zCups.get_user_configsN)__name__
__module____qualname__
short_descplugin_nameprofilesservicespackagesr   option_listr   r   r   r   r   r   r      s    r   )r#   sos.report.pluginsr   r   r   r   r   r   r   r   <module>   s   