
    ([QhN                     8    d dl Z d dlmZmZmZ  G d dee      Zy)    N)PluginIndependentPlugin	PluginOptc                   D    e Zd ZdZdZdZdZdZ eddd	      gZ	d
 Z
d Zy)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                    | j                  d      sE| j                  d       | j                  d       | j                  d       | j                  d       n"| j                  d       | j                  d       | j                  g d       | j                  g d	       | j                  d
      r| j                          y y )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)selfs    9/usr/lib/python3/dist-packages/sos/report/plugins/cups.pysetupz
Cups.setup   s    z*9:8978:;/12 

 
	 	 
 	 ??;'!!# (    c           	      $   t        j                         }ddg}i }	 t        ddd      5 }|D ]  }|j                         dd \  }}|||<    	 d	d	d	       h d}|D ]  }	|	j                  |v r1||	j                     |v r | j                  d|	j                   d       B| j                  |	j                  d      }
| j                  |D cg c]	  }|
 d|  c}        y	# 1 sw Y   xY w# t        $ r | j                  d
       Y y	w xY wc c}w )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.cups/)
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userhome_dirconfig_files               r   r   zCups.get_user_configs=   s4    \\^

 	ncG< 7' 7D+/::<!+<(Wi-6M'*77 1  	D{{m+!$++.,>*4;;-67 ~~dkk7;H@LMH:Q{m,M	7 7  	OO89	  Ns.   C- #C!C- 	D
!C*&C- -D
	D
N)__name__
__module____qualname__
short_descplugin_nameprofilesservicespackagesr   option_listr   r    r   r   r   r      sA    )JKH0HH 	+u5	7K$> r   r   )r"   sos.report.pluginsr   r   r   r   r?   r   r   <module>rA      s!     C CO6$ Or   