3 ܓiN @s2ddlZddlmZmZmZGdddeeZdS)N)PluginIndependentPlugin PluginOptc@s@eZdZdZdZdZdZdZeddd d gZ d d Z d dZ dS)CupszCUPS IPP print servicecupshardware cups-browsedlprintlegacy-printer-app userconfsFz6Changes whether plugin will collect user .cups configs)defaultZdescc Cs|jds4|jd|jd|jd|jdn|jd|jd|jdd d d d d dddg |jdddg|jdr|jdS)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-usbz/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.statez lpstat -tz lpstat -sz lpstat -dr )Z get_option add_copy_specZadd_cmd_outputget_user_configs)selfr/usr/lib/python3.6/cups.pysetups.        z Cups.setupc stj}ddg}i}yHtdddd0}x(|D] }|jdd\}}|||<q,WWd QRXWntk rz|jd d SXd d d h}x`|D]X} | j|kr|| j|kr|jd| jdq|j| jd|j fdd|DqWd S)zS Iterate over .cups folders in user homes to capture config files. z client.confZ lpoptionsz /proc/mountsrzUTF-8)encodingNzCouldn't read /proc/mountsZnfsZnfs4ZautofszSkipping capture in z because it's a remote directoryz.cupscsg|]}d|qS)/r).0Z config_file)home_dirrr \sz)Cups.get_user_configs..) pwdZgetpwallopensplit ExceptionZ _log_errorpw_dirZ _log_infoZ path_joinr ) rZ users_dataZ config_filesZ fs_mount_infoZ mounts_filelineZfs_fileZ fs_vstypeZ non_local_fsuserr)rrr=s,     zCups.get_user_configsN)r)rrr r )r) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZservicesZpackagesrZ option_listrrrrrrrs r)rZsos.report.pluginsrrrrrrrr s