
    Zuf2                        d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZddlm	Z	m
Z
 ddlmZmZmZmZ ddlmZ d dlZd dlZddlmZ ddlmZ d	 Z G d
 deej        j        j                  Z G d de          Z G d dej        j        j                  Z G d de          Ze dk    r e            Z! e" edd                      e            Z! e"e!#                    ddd                      e"e!#                    ddd                      ej$        d            e!%                                  ej&                    Z'e!(                                Z)e!*                    e'          Z+ej,        dd         D ]Z-e'e-         .                                 e'/                    e)e+            ej$        d            e!0                                1                    g d           e!2                    ddd           e!3                    dg d            e"e!#                    dd                     dS dS )     N)dgettext   )
run_apportapport_crash)AcquireProgressDistUpgradeViewENCODINGInstallProgress)get)gettext)twrapc                      t           j                                         	 t                      } n# t          $ r d} Y nw xY wt          | d          r|                     t          d          S | S )z( py2/py3 compatible readline from stdin  decodebackslashreplace)sysstdoutflushinputEOFErrorhasattrr   r	   )ss    R/home/let_prod/public_html/lightetech2/upgrader/DistUpgrade/DistUpgradeViewText.pyreadliner   /   sv    JGG   q( 6xx"4555Hs   / >>c                       e Zd Zd Zd ZdS )TextAcquireProgressc                     t           j        j        j                            |            t          j        |            d S N)aptprogresstextr   __init__selfs    r   r"   zTextAcquireProgress.__init__<   s5    )224888 &&&&&    c                     t           j        j        j                            | |           t          j        | |           dS NT)r   r    r!   r   pulse)r$   owners     r   r(   zTextAcquireProgress.pulse?   s8    )//e<<<dE***tr%   N)__name__
__module____qualname__r"   r(    r%   r   r   r   ;   s2        ' ' '    r%   r   c                   (     e Zd ZdZ fdZd Z xZS )TextInstallProgress   c                 V     t          t          |           j        |i | d| _        d S )Nr   )superr/   r"   _prev_percent)r$   argskwargs	__class__s      r   r"   zTextInstallProgress.__init__J   s4    1!4((14B6BBBr%   c                     | j         | j        z   |k     rMd}t          |d          t          |          z  }t          j                            d|z             || _         d S d S )Nzlibapt-pkg4.12zProgress: [%3i%%]z
%s
)r3   MIN_REPORTINGr   intr   r   write)r$   pkgpercentstatusdomainprogress_strs         r   status_changez!TextInstallProgress.status_changeN   si     22W<<%F#F,?@@3w<<OLJ\L8999!(D =<r%   )r*   r+   r,   r8   r"   r@   __classcell__r6   s   @r   r/   r/   E   sN         M    ) ) ) ) ) ) )r%   r/   c                   $    e Zd ZdZd Zd Zd ZdS )TextCdromProgressAdapterz  Report the cdrom add progress  c                 p    |r3t          d||j        t          | j                  z  dz  fz             dS dS )z; update is called regularly so that the gui can be redrawn z%s (%f)d   N)printvaluefloat
totalSteps)r$   r!   steps      r   updatezTextCdromProgressAdapter.updateY   sK     	K
	T4:eDO.D.D#DS#HII
J
J
J
J
J	K 	Kr%   c                     dS )N)Fr   r-   r#   s    r   ask_cdrom_namez'TextCdromProgressAdapter.ask_cdrom_name]   s    {r%   c                     dS NFr-   r#   s    r   change_cdromz%TextCdromProgressAdapter.change_cdrom_   s    ur%   N)r*   r+   r,   __doc__rL   rN   rQ   r-   r%   r   rD   rD   W   sJ        **K K K      r%   rD   c                        e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Z fdZd ZddZddZd Z	 ddZddZddZd Z xZS )DistUpgradeViewTextz' text frontend of the distUpgrade tool Nc                    d| _         t                                          d           dt          j        vrdt          j        d<   |r|dk    r2t          j                            t          j                    d          }nd}	 t          j	        d|           t          j
        d           n.# t          $ r!}t          j        d	|z             Y d }~nd }~ww xY wd | _        t          j        j                                        | _        t)                      | _        t-                      | _        t1                      | _        | j        t6          _        d S )
NTTextDEBIAN_FRONTENDdialog.moz)/usr/share/locale/ubuntu-release-upgraderzubuntu-release-upgraderzError setting locales (%s))needs_screenget_telemetryset_updater_typeosenvironpathjoingetcwdr   bindtextdomain
textdomain	Exceptionloggingwarning	last_stepr   r    r!   
OpProgress_opCacheProgressr   _acquireProgressrD   _cdromProgressr/   _installProgress_handleExceptionr   
excepthook)r$   datadirlogdir	localedires        r   r"   zDistUpgradeViewText.__init__f   s=    ((000 BJ..,4BJ() 	@'S..GLLT22))?)	<

 !:I
F
F
F

6
7
7
7
7 	< 	< 	<
/6:
;
;
;
;
;
;
;
;	<  # 1 < < > > 3 5 5688 3 5 5.s   )B- -
C7CCc                    dd l }t                       |                    |||          }t          j        dd                    |          z             t          |||           t                      sD|                     t          d          t          d          d                    |                     t          j
        d           d S )Nr   znot handled exception:
%s
zA fatal error occurredzPlease report this as a bug and include the files /var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in your report. The upgrade has aborted.
Your original sources.list was saved in /etc/apt/sources.list.distUpgrade.r   )	tracebackrG   format_exceptionrf   errorra   r   r   _r   exit)r$   typerH   tbrv   liness         r   rn   z$DistUpgradeViewText._handleException   s    
 	**4;;2TYYu5E5EEFFFT5"%%%|| 	)JJq122 > ? ? yy'') ) ) 	r%   c                     | j         S r   )rk   r#   s    r   getAcquireProgressz&DistUpgradeViewText.getAcquireProgress       $$r%   c                 (    || j         _        | j         S r   )rm   _cache)r$   caches     r   getInstallProgressz&DistUpgradeViewText.getInstallProgress   s    ',$$$r%   c                     | j         S r   )rj   r#   s    r   getOpCacheProgressz&DistUpgradeViewText.getOpCacheProgress   r   r%   c                     | j         S r   )rl   r#   s    r   getCdromProgressz$DistUpgradeViewText.getCdromProgress   s    ""r%   c                 |    t                       t          |           t          j                                         d S r   )rG   r   r   r   )r$   msgs     r   updateStatusz DistUpgradeViewText.updateStatus   s0    gggCjjj	jr%   c                 Z    t                       t          t          d                     d S )NAborting)rG   ry   r#   s    r   abortzDistUpgradeViewText.abort   s%    gggAjMMr%   c                 f    t          t          |                               |           || _        d S r   )r2   rT   setSteprh   )r$   rK   r6   s     r   r   zDistUpgradeViewText.setStep   s-    &&..t444dnnnr%   c           
          |                      ||t          d          t          d                    |                    z              d S )Nz	Demoted:
z, )informationry   r   ra   )r$   summaryr   	demotionss       r   showDemotionsz!DistUpgradeViewText.showDemotions   sO    #<tyy/C/C)D)DD	F 	F 	F 	F 	Fr%   c                 "   t                       t          t          |                     t          t          |                     |rt          t          |                     t          t          d                     t                       d S )Nz To continue please press [ENTER])rG   r   ry   r   r$   r   r   extended_msgs       r   r   zDistUpgradeViewText.information   su    gggE'NNE#JJ	 #eL!!"""A011222jjjjjr%   c                     t                       t          t          |                     t          t          |                     |rt          t          |                     dS rP   )rG   r   r   s       r   rx   zDistUpgradeViewText.error   sV    gggE'NNE#JJ	 #eL!!"""Ur%   c                     t          |t                    s|                    t                    }dD ]}t          j                            |          rt          j        |dgt          j	                  }	 |j
                            |           |j
                                         |                                 n-# t          $ r }|j        t          j        k    r Y d}~nd}~ww xY w dS t#          |           dS )z" helper to show output in a pager )z/usr/bin/sensible-pagerz	/bin/more-)stdinN)
isinstancebytesencoder	   r^   r`   exists
subprocessPopenPIPEr   r:   closewaitIOErrorerrnoEPIPErG   )r$   outputpagerprs   s        r   showInPagerzDistUpgradeViewText.showInPager   s     && +==**&;  %W^^E"" 
"E#;Z_EEEa'--''''--///&&((((   W++ ,++++ ff
 Fmmmmms   6AB>>
C(C##C(Tc                    t          j        | |||||           t                       t          t          |                     t          t          | j                             t          dt          d          dt          d          d           	 t                                                                                      }|	                    t          d                    rdS |r"|	                    t          d                    rd	S |	                    t          d
                    rd}t          | j                  dk    rK|dz  }|t          t          d          d                    d | j        D                       z  d          z  }t          | j                  dk    rK|dz  }|t          t          d          d                    d | j        D                       z  d          z  }t          | j                  dk    rK|t          t          d          d                    d | j        D                       z  d          z  }|dz  }t          | j                  dk    rK|dz  }|t          t          d          d                    d | j        D                       z  d          z  }t          | j                  dk    rK|dz  }|t          t          d          d                    d | j        D                       z  d          z  }|                     |           t          t          d          dt          d          d           )N Continue [yN] zDetails [d]r   endTynFdr   ru   zNo longer supported: %s
c                     g | ]	}|j         
S r-   name.0r   s     r   
<listcomp>z6DistUpgradeViewText.confirmChanges.<locals>.<listcomp>   s    <\<\<\QV<\<\<\r%   z  subsequent_indentzRemove: %s
c                     g | ]	}|j         
S r-   r   r   s     r   r   z6DistUpgradeViewText.confirmChanges.<locals>.<listcomp>   s    /N/N/N1/N/N/Nr%   zRemove (was auto installed) %sc                     g | ]	}|j         
S r-   r   r   s     r   r   z6DistUpgradeViewText.confirmChanges.<locals>.<listcomp>   s    AdAdAdQ!&AdAdAdr%   zInstall: %s
c                     g | ]	}|j         
S r-   r   r   s     r   r   z6DistUpgradeViewText.confirmChanges.<locals>.<listcomp>       0P0P0PA0P0P0Pr%   zUpgrade: %s
c                     g | ]	}|j         
S r-   r   r   s     r   r   z6DistUpgradeViewText.confirmChanges.<locals>.<listcomp>   r   r%   )r   confirmChangesrG   r   confirmChangesMessagery   r   striplower
startswithlenr   ra   toRemovetoRemoveAuto	toInstall	toUpgrader   )	r$   r   changesr   downloadSizeactionsremoval_boldresr   s	            r   r   z"DistUpgradeViewText.confirmChanges   s   $T7GY%17< < <gggE'NNE$,--...e*++++Q}-=-=-=>BGGGG%Ijj  &&((>>!C&&!! !	# 	#qvv.. 	#^^AcFF## 	#&  1$$nf/00388<\<\T^<\<\<\3]3]]$(* * * *f !##nfN##chh/N/N/N/N/N&O&OO$(* * * *f "##a''455AdAdRVRcAdAdAd8e8ee$(* * * *f nf  1$$nfO$$sxx0P0P0P0P0P'Q'QQ$(* * * *f   1$$nfO$$sxx0P0P0P0P0P'Q'QQ$(* * * *f 

6
"
"
"+,,,,a.>.>.>?RHHHHK%Ir%   Noc                 v   t                       |rt          t          |                     t          t          |                     |dk    rvt          t          d          d           t                      }|                                                                                    t          d                    rdS dS t          t          d          d           t                      }|                                                                                    t          d	                    rdS dS )
Nr   r   r   r   r   TFzContinue [Yn] r   )rG   r   ry   r   r   r   r   )r$   r   r   defaultr   s        r   askYesNoQuestionz$DistUpgradeViewText.askYesNoQuestion   s   ggg	 eGnnE#JJ	D
"##
,
,
,
,

#YY[[  ++AcFF33 T
"##
,
,
,
,

#YY[[  ++AcFF33 Ur%   Cancelc                 B    |                      |||dk    rdnd          S )Nr   r   Yesr   )r   )r$   r   r   r   s       r   askCancelContinueQuestionz-DistUpgradeViewText.askCancelContinueQuestion  s4    ""7C8++ # 8 8 8r%   c                 f    |                      t          d          t          d          d          S )NzRestart requiredz]To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.r   r   )r   ry   r#   s    r   confirmRestartz"DistUpgradeViewText.confirmRestart#  sF    ""1%7#8#8#$ &: $; $; EI	 # J J Jr%   )NNr   r'   )r   )r   )r*   r+   r,   rR   r"   rn   r   r   r   r   r   r   r   r   r   rx   r   r   r   r   r   rA   rB   s   @r   rT   rT   c   s`       11/ / / /6  *% % %% % %% % %# # #        F F F        , 37-I -I -I -I^   (8 8 8 8 J J J J J J Jr%   rT   __main__z89 packages are going to be upgraded.
You have to download a total of 82.7M.
This download will take about 10 minutes with a 1Mbit DSL connection and about 3 hours 12 minutes with a 56k modem.r   r   helloz	Icecream?r   r   )z/usr/bin/dpkgz--configurez-ashortlonga  asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended
xxrF   )4r   r   rf   r   r   r   r   r^   DistUpgradeApportr   r   r   r   r	   r
   	telemetryr   r\   apt.progressDistUpgradeGettextry   utilsr   r   r    r!   r   r/   baseCdromProgressrD   rT   r*   viewrG   r   rz   r   Cacher   r   fpr   ipargvr;   mark_installcommitgetTerminalcallrx   r   r-   r%   r   <module>r      s  ,  



            



 				 7 7 7 7 7 7 7 7            , + + + + +      , , , , , ,      	 	 	    /3<+<+L   ) ) ) ) )/ ) ) )$	 	 	 	 	s|0> 	 	 	EJ EJ EJ EJ EJ/ EJ EJ EJP z				$
 %  S  gj  	k  	k  	k  l  l  l 
			$%g{D99:::%g{E::;;;
 #(1+++
#)++%  "u%%" Xabb\  c	#J,,r"
#(1+++>>>???**WVO   d2s###%g{3344444U r%   