
    QKf                         d dl Z d dlZd dlmZ d dlZ ej
                  dd       d dlmZ d dlmZ e d dl	m
Z
  G d d	e
      Zy)
    N)gettextGtkz3.0)GObject)GdkX11)InstallBackendc                   ,    e Zd ZdZd Z	 ddZd Zd Zy)InstallBackendSynapticz!Install backend based on synapticc                 H    dg}d }| j                  | j                  ||       y )Nz--update-at-startup)_run_synapticACTION_UPDATE)selfopttempfs      N/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendSynaptic.pyupdatezInstallBackendSynaptic.update   s'    $%4--sE:    c                 ^   g }|r"|j                  d       |j                  d       |j                  d       |j                  dt        d      z         |j                  d       |j                  dt        d      z         t        j                  d	      }||z   D ]  }|j	                  d
|z          |D ]  }|j	                  d|z          |j                  d       |j                  d|j
                  z         |j                          | j                  | j                  ||       y )Nz-ozSynaptic::closeZvt=truez--progress-str%sz%Please wait, this can take some time.z--finish-strzUpdate is completezw+)modez%s	install
z%s	deinstall
z--set-selections-file)	append_tempfileNamedTemporaryFilewritenameflushr   ACTION_INSTALL)r   pkgs_installpkgs_upgradepkgs_removeclose_on_doner   r   pkg_names           r   commitzInstallBackendSynaptic.commit   s    JJtJJ01

#$

4!CDDE

>"

4!0112++6$|3 	4HKK(23	4# 	6HKK)H45	6

*+

4%**$%4..U;r   c                 t   | j                   j                         }	 |j                         }dddddd|z  g}|j	                  |       t
        j                  }t        j                  ||      \  }}	}
}||f| _        t        j                  || j                  | j                         y	# t        $ r d}Y w xY w)
zExecute synaptic.r   z/usr/bin/pkexecz/usr/sbin/synapticz--hide-main-windowz--non-interactivez--parent-window-idr   )flagsN)window_main
get_windowget_xidAttributeErrorextendr   SPAWN_DO_NOT_REAP_CHILDspawn_async
child_datachild_watch_add_on_synaptic_exit)r   actionr   r   winxidcmdr%   pidstdinstdoutstderrs               r   r   z$InstallBackendSynaptic._run_synaptic8   s    ))+	++-C    3J
 	

3//'.':':3e'L$eVV "5/T%;%;T__M#  	C	s   B) )B76B7c                     |\  }}|r|j                          | j                  |dt        j                  |      dk(  d d        y )NTr   )
authorizedsuccesserror_string
error_desc)close_action_doneosWEXITSTATUS)r   r4   	conditiondatar0   r   s         r   r/   z(InstallBackendSynaptic._on_synaptic_exitP   sG    KKMNN9-2 	 	
r   N)F)__name__
__module____qualname____doc__r   r#   r   r/    r   r   r	   r	      s!    +; FK<2N0

r   r	   )r?   r   r   r   girequire_versiongi.repositoryr   r   UpdateManager.backendr   r	   rG   r   r   <module>rL      sA   
 
    	   5%   ! !  0C
^ C
r   