a >hN @s2ddlZddlmZmZmZGdddeeZdS)N)PluginIndependentPlugin PluginOptc@s@eZdZdZdZdZdZdZedddd gZ d d Z d d Z dS)CupszCUPS IPP print servicecups)Zhardware)rz cups-browsedZlprintzlegacy-printer-app)r userconfsFz6Changes whether plugin will collect user .cups configs)defaultZdesccCsz|ds4|d|d|d|dn|d|d|gd|gd |d rv|dS) NZall_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)Z get_option add_copy_specZadd_cmd_outputget_user_configs)selfr ;/usr/lib/python3.9/site-packages/sos/report/plugins/cups.pysetups         z Cups.setupc st}ddg}i}zXtdddd6}|D] }|dd\}}|||<q*Wd n1s`0YWnty|d Yd S0hd }|D]X} | j|vr|| j|vr|d | jd q|| jd| fdd|Dqd S)zS Iterate over .cups folders in user homes to capture config files. z client.confZ lpoptionsz /proc/mountsrzUTF-8)encodingNzCouldn't read /proc/mounts>ZautofsnfsZnfs4zSkipping capture in z because it's a remote directoryz.cupscsg|]}d|qS)/r ).0Z config_fileZhome_dirr r \z)Cups.get_user_configs..) pwdgetpwallopensplit ExceptionZ _log_errorpw_dirZ _log_infoZ path_joinr ) r Z users_dataZ config_filesZ fs_mount_infoZ mounts_filelineZfs_fileZ fs_vstypeZ non_local_fsuserr rr r =s4,     zCups.get_user_configsN) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZservicesZpackagesrZ option_listrr r r r r rsr)rZsos.report.pluginsrrrrr r r r  s