3
NZ1'              *   @   s  d dl mZ dZdZdZdZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlT d dlmZmZmZmZmZmZ d d	lmZ d
Zd
Zd
Zdej ZdZd_ddZd`ddZdd Z ed
ddfde d
ddfej!dadbdcej"ej#ej$ej%ej&dd e d!dfd"d#e d!dfej'ddgZ(ded'd(Z)yd dl*Z*d d)l*m+Z+m,Z, W n* e-k
rj   e.j/d* ej0d+ Y nX yRej1eeeee(e2e3fe4e5e6fddd,	Z7e7j8d-d.d/d0d1d2d3gdd4\Z9ZZZ:Z;Z<W nB e	j=k
r  Z> z"e.j/e>j? e)  ej0d+ W Y ddZ>[>X nX ej@d5re.jAd6 d7ZBdZCdZDdZEdZFdZGxe9D ]\ZHZIeHdfkrPe)  neHd;krde)d< neHd=krxe)d> neHdgkrdZFnxeHdBkreJedCdD ej0d  nVeHdhkreIjK jL ZBn>eHdikrd6ZBn.eHdjkrdZCneHdkkrdZDneHdlkr6dZEq6W e.jAeBse)  ye7jMd  ZNW n eOk
r@   d
ZNY nX ejPjQeZe.jRe.jSdMe  ejPjTeryejUe W n eVk
r   Y nX e.jWe e.jXe.jY e.jZdN eDreCre.j/dO e)  ej0d+ e.jZdPeN  e[eNd+k re)  ej0  eNrej\eN\ZZ]Z^es6e.j/dQ ej0d  e.jZdRe  ej_eZ`e` she`jadSebebkr|e.j/dT ej0d+ e`jadUecZdedeckre.jZdV ej0  eDsdZCdZeejfdW\ZgZhegdkreji d kre.j/dX n e.jRdY ejj  ejfdW\ZgZhegdkrdZee.jZdZ ejk Zleljm ZnenejokrHe.jRd[ dZGn"enejpkr`e.jRd\ n
e.jRd] eCreGseee neDreGseeed eEreGdkrdZqndZqe eleqeN e.jR  e.jRd^ dS )m    )print_functionz1.1z+AutoConfig Utility for Plug-in Installationzhp-check-pluginzbAuto config utility for HPLIP supported multifunction Devices for installing proprietary plug-ins.N)*)utilsdevicetuimodulepkitservices)pluginhandler z%s/hplip_ac.logzcom.hplip.StatusServicec       	      C   sT   t jd | ||||||g}tjdtd}|j|ddi t j| t jd d S )Nzsend_message() entered/ZEventZ	signatureZssisisszsend_message() returning)logdebuglowlevelZSignalMessageDBUS_SERVICEappend	SystemBussend_message)	
device_uriprinter_nameZ
event_codeusernameZjob_idtitleZ	pipe_nameargsmsg r    /usr/share/hplip/check-plugin.pyr   7   s    
r   Fc             C   s   |rt j s$tjdt  tjd y,ddlm}m	} ddl
m} ddlm} W n( tk
rx   tjd tjd Y nX |tj}t}t}tj|tk|\}	}
|	 s|
 rtjd n,| rttd	ttdd
 tjd n
tjd d S )Nz+%s requires GUI support . Is Qt4 installed?   r   )QApplicationQMessageBox)PluginDiagnose)core_installz,Unable to load Qt4 support. Is it installed?zFailed to install plug-in.r   Z
AutoConfigzAEvent EVENT_AUTO_CONFIGURE sent to hp-systray to invoke hp-pluginz-Run hp-systray manually and re-plugin printer)r   ZcanEnterGUIMode4r   error__mod__sysexitZPyQt4.QtGuir   r   Zui4.plugindiagnoser   	installerr    ImportErrorargvZPLUGIN_REQUIREDZPLUGIN_REASON_NONEr   Zrun_plugin_commandr   r   ZEVENT_AUTO_CONFIGUREr   r   )Zsystray_running_statusZrun_directlyr   r   r   r    ZapppluginZplugin_reasonokZsudo_okr   r   r   install_PluginA   s*    


r*   c             C   s   d}xz|dkr~|dkr~t jd |d }tjd\}}tjd\}}|dkr|dkrd}| j tkrhP qtjd	 tj	d
 qW d}d}|d k	r|d| 7 }t
dkr|d7 }|| }	tjd tjd|	  tj|	\}
}d S )Nip  Fr   g333333?   z	hp-pluginzhp-diagnose_pluginTz\Failed to download firmware required files. manually run hp-plugin command in terminal fisrtr   zhp-firmwarer   z -y3 %sr   z -gzStarting Firmware installation.zRunning command : %s )timeZsleepr   Is_Process_Running	getStatusPLUGIN_INSTALLEDr   r!   r#   r$   	log_levelinfor   Zrun)	pluginObjPlugin_Installation_CompletedZ	USB_paramZsleep_timeoutZ	ps_pluginoutputZps_diagnose_pluginZexecmdZoptionscmdZStatusoutr   r   r   install_firmware^   s,    


r7   nameTz$Usage: %s [OPTIONS] [USB bus:device]Zsummary'Install Plug-in through HP System Tray:-m (Default)option"Install Plug-in through hp-plugin:-p"Download firmware into the device:-fzInstall plugin:z$%s 001:002ZexamplezInstall plugin and firmware:z$%s -f 001:002*-m and -p options can't be used together. notetextc             C   s4   | dkrt jtt t jt| ttt tjd d S )NrB   r   )	r   Z	log_title	__title____version__Zformat_textUSAGEr"   r#   r$   )typr   r   r   usage   s    rG   )r   r   z2hp-check-plugin Tool requires dBus and python-dbusr   )Zrun_as_root_okquietzl:hHuUmMfFpPgGZguihelpz	help-restzhelp-manz	help-desczlogging=)Zhandle_device_printerZHPLIP_DEBUGr   r1   -h-H--helpz--help-restrestz
--help-manZman-u-U--guiz--help-desc )end-l	--logging-g-G-m-M-P-FzSaving output in log file: %sz hp-check-plugin startedz.Both -m and -p options can't be used together.zparam=%szThis is not a valid devicez
Setting up device: %s
zsupport-typezUnsupported printer model.r(   zThis is not a plugin device.z
hp-systrayz@ hp-systray must be running.
 Run 'hp-systray &' in a terminal. zStarting hp-systray servicezhp-systray service is running
z"Device Plugin is already installedzHP Device Plug-in is not foundz>HP Device Plug-in version mismatch or some files are corruptedzDone.)r   )F)r9   r:   r;   F)r<   r=   r;   F)r>   r?   r;   F)r@   r   rA   F)rB   )rJ   rK   rL   )rN   rO   rP   )rS   rT   )rU   rV   )rW   rX   )r=   rY   )rZ   r?   )rZ
__future__r   rD   rC   r"   __doc__r#   osos.pathZgetoptsignaloperatorr,   Zbase.gbaser   r   r   r   r   r	   r%   r
   r   r   r   ZpropZuser_dirZLOG_FILEr   r   r*   r7   ZUSAGE_OPTIONSZ
USAGE_HELPZUSAGE_LOGGING1ZUSAGE_LOGGING2ZUSAGE_LOGGING3ZUSAGE_EXAMPLESZUSAGE_NOTESrE   rG   Zdbusr   r   r&   r   r!   r$   ZModuleZINTERACTIVE_MODEZGUI_MODEZUI_TOOLKIT_QT3ZUI_TOOLKIT_QT4ZUI_TOOLKIT_QT5modZparseStdOptsZoptsmodeZ
ui_toolkitlocZGetoptErrorer   getenvZ	set_levelr0   ZSystray_Msg_EnabledZPlugin_option_EnabledZFirmware_Option_EnabledZGUI_ModeZIs_Plugin_Already_Installedoaprintlowerstripr   Zparam
IndexErrorpathnormpathr1   ZboldexistsremoveOSErrorZset_logfileZ	set_whereZLOG_TO_CONSOLE_AND_FILEr   lenZmakeURIZsane_uriZfax_uriZqueryModelByURIZmqgetZSUPPORT_TYPE_NONEZPLUGIN_NONEr(   ZSystray_Is_Runningr-   Zstatusr4   getuidZrun_systrayZPluginHandler2   r.   Z
plugin_stsr/   ZPLUGIN_NOT_INSTALLEDr3   r   r   r   r   <module>   s0   



%



,


































