QKf ddlZddlZddlmZddlZej ddddlmZddlmZeddl m Z Gdd e Z y) N)gettextGtkz3.0)GObject)GdkX11)InstallBackendc,eZdZdZdZ ddZdZdZy)InstallBackendSynapticz!Install backend based on synapticcHdg}d}|j|j||y)Nz--update-at-startup) _run_synaptic ACTION_UPDATE)selfopttempfs N/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendSynaptic.pyupdatezInstallBackendSynaptic.updates'$% 4--sE:c^g}|r"|jd|jd|jd|jdtdz|jd|jdtdztjd }||zD]}|j d |z|D]}|j d |z|jd |jd|j z|j |j|j||y) Nz-ozSynaptic::closeZvt=truez--progress-str%sz%Please wait, this can take some time.z --finish-strzUpdate is completezw+)modez %s install z %s deinstall z--set-selections-file) append_tempfileNamedTemporaryFilewritenameflushr ACTION_INSTALL)r pkgs_install pkgs_upgrade pkgs_remove close_on_donerrpkg_names rcommitzInstallBackendSynaptic.commits   JJt  JJ0 1 #$ 4!CDDE >" 4!0112++6$|3 4H KK(2 3 4# 6H KK)H4 5 6 *+ 4%**$%  4..U;rct|jj} |j}dddddd|zg}|j |t j }t j||\}} } } ||f|_t j||j|jy #t$rd}YwxYw) zExecute synaptic.rz/usr/bin/pkexecz/usr/sbin/synapticz--hide-main-windowz--non-interactivez--parent-window-idr)flagsN) window_main get_windowget_xidAttributeErrorextendrSPAWN_DO_NOT_REAP_CHILD spawn_async child_datachild_watch_add_on_synaptic_exit) r actionrrwinxidcmdr%pidstdinstdoutstderrs rr z$InstallBackendSynaptic._run_synaptic8s))+ ++-C   3J   3//'.':':3e'L$eVV"5/T%;%;T__M# C sB)) B76B7c|\}}|r|j|j|dtj|dk(ddy)NTr) authorizedsuccess error_string error_desc)close _action_doneos WEXITSTATUS)r r4 conditiondatar0rs rr/z(InstallBackendSynaptic._on_synaptic_exitPsG   KKM  NN9-2  rN)F)__name__ __module__ __qualname____doc__rr#r r/rrr r s!+; FK<2N0  rr ) r?rrrgirequire_version gi.repositoryrrUpdateManager.backendrr rGrrrLsA   5% !!0C ^C r