
    dg                        S SK r S SKrS SKrS SKrS SKr\" S5      rSrSrSq	Sr
SrSr\R                  R                  \R                  R                  \5      S	5      rS
 rS rS rS rS rS rS rSrSrSrSrS rS rS rS\R>                  \S\/S\R>                  \S\/S\R@                  \SS/S\RB                  \S\/S\RB                  \SS/S\RB                  \SS/S\RB                  \SS/S\RB                  \SS/S\RB                  \SS/S.	r"S r#S r$S r%\&S :X  a%  \%" \RN                  5        \RP                  " S 5        gg)!    Nzapt-listchanges/z/var/lib/apt/listchangesapt Fcapture_snapshotssnapshot_dirzlistchanges-snapshotsc                 4    U [         S  R                  SS5      $ )N-_)PREFIX_SIZEreplace)names    @/usr/lib/python3/dist-packages/apt_listchanges/debconf_helper.py	_tmpl2Keyr      s    %%c3//    c                  `    S[         R                  ;   a  [        U S[        R                  06  g g )NAPT_LISTCHANGES_DEBCONF_DEBUGfile)osenvironprintsysstderr)argss    r   _debugr      s$    &"**4t%#**% 5r   c                     [        SX US5        U(       a0  UR                  [        U 5      nUS:X  a  SnUR                  X%5        g UR	                  U5      nUS:X  a  SnUR                  [        X5        g )NzhandleString()noner   )r   getSECTIONset	getStringcfgkeyconfigtemplatedb
fromConfigvalues         r   _handleStringr(   "   sc    
?Hj#>

7F+F?E
xX&B;E

7F*r   c                     [        SX US5        U(       a6  UR                  [        U 5      nUR                  X%R	                  5       5        g UR                  U5      nUR                  [        X5        g )NzhandleList(r   )r   r   r   r   lowerr    r!   s         r   _handleListr+   0   sQ    
=(J<

7F+
x'X&

7F*r   c                 >   UR                  [        U S S9n[        SX USU5        U(       a*  UR                  U[	        U5      R                  5       5        g UR                  U5      nUb  XV:w  a/  UR                  [        U [	        U5      R                  5       5        g g )NfallbackzhandleBoolean(), old config value:)
getbooleanr   r   r   strr*   
getBoolean)r"   r#   r$   r%   r&   r'   newvalues          r   _handleBooleanr4   :   s    gv=E
Xz!5*
xU))+,==*=E-JJwH(;(;(=> .r   c                    UR                  [        U S S9n[        SX USU5        U(       a6  UR                  U[	        U=(       a    US:g  5      R                  5       5        O,UR                  U5      (       d  SnOU(       a  US:X  a  [        n[        (       a%  [        S:  a  UR                  S5      (       a  US S nUR                  [        X5        g )Nr-   zhandleSeen(r/   r   z4.0z.db)
r   r   r   r   r1   r*   r2   DEFAULT_SEEN_DBprevious_versionendswithr!   s         r   _handleSeenr:   F   s     JJwJ6E
=(J!5*
xU6u7==?@]]8$$evo,u49N9Ncr

JJw&r               c                 8    U S:X  a  gU S:H  [         S   [        '   g)Nr   Tmailapt-listchanges/confirmFNAMESIDX_SKIP)frontends    r   _checkFrontendrF   ^   s%    619V1CE
#$X.r   c                 *    U S:H  [         S   [        '   g)Nnewsapt-listchanges/no-networkFrB   )whichs    r   _checkWhichrK   f   s    49VOE
&'1r   c                 .    U (       + [         S   [        '   g)Napt-listchanges/email-formatFrB   )emailAddresss    r   _checkEmailAddressrO   k   s    :F6FE
()(3r               	   )	zapt-listchanges/frontendzapt-listchanges/whichrI   zapt-listchanges/email-addressrM   rA   zapt-listchanges/headerszapt-listchanges/reversezapt-listchanges/save-seenc                     [        S5        [        R                  5        HQ  u  p#[        U5      nU R	                  [
        U5      (       d  M-  U[           " X@X!S5        UR                  USS5        MS     g )NzupdateDebconfFromConfig()Tseentrue)r   rC   itemsr   
has_optionr   IDX_HANDLERfset)r#   r%   tmplparamsr"   s        r   _updateDebconfFromConfigr^   |   sZ    
&'4Wf--;$?GGD&&)	 &r   c                    [        SUS5        [        [        R                  5       S S9 H  u  p4U[           (       a  [        SU 35        M#  U(       a  U[
           " [        U5      XUS5        O7UR                  U[           U5        U[           (       a  UR                  5         U[           (       d  M  UR                  U5      nU[           " U5      (       d  M  [        SU 35          g    U(       d  UR                  5         g g )NzcommunicateWithDebconf(r   c                     U S   [            $ )Nr;   )IDX_QUESTION_NUMBER)xs    r   <lambda>)_communicateWithDebconf.<locals>.<lambda>   s    ad3F.Gr   )keyz	skipping Fzfinishing on )r   sortedrC   rX   rD   rZ   r   
forceInputIDX_PRIORITY	IDX_CHECKgor   )r#   r%   is_postinstr\   r]   r'   s         r   _communicateWithDebconfrl      s    
$k37u{{}#GI(Ytf%&;	$r5IMM&.5i )FF4LEi ''tf-.#I& 
 r   c           	         [        U 5      S:  a.  [        S[        R                  S9  [        R                  " S5        [
        R                  " 5         U S   S:H  nU S   nU S   q[        SXS5        [        R                  " 5       nUR                  U5        UR                  [        5      (       d  UR                  [        5         [        R                   " SS	5      n[
        R(                  " US9nU(       d  [+        X65        [-        X6U5        [.        (       a  UR1                  [        [2        5      (       d  UR5                  [        [2        S5        UR1                  [        [6        5      (       d^  UR5                  [        [6        [        R8                  R;                  [        R8                  R=                  [>        5      [@        5      5        OURC                  [        [2        S S9S:X  ai  URE                  [        [2        5        URC                  [        [6        S S9nU(       a  [F        RH                  " USS9  URE                  [        [6        5        U(       aM  [K        US-   SSS9 nURM                  USS9  [        RN                  " URQ                  5       S5        S S S 5        g g ! ["         a0  n[        S
[%        U5      5        [        R&                  n S nAGNS nAff = f! , (       d  f       g = f)Nr=   z;Usage: script postinst|config config_file mainscript_params)r   r;   postinstr<   z'apt-listchanges debconf script started(r   wtz failed to open file descriptor 3)writeautor-   T)ignore_errorsz.newwzutf-8)encodingF)space_around_delimitersi  ))lenr   r   r   exitdebconfrunFrontEndr8   r   configparserConfigParserreadhas_sectionr   add_sectionr   fdopen	Exceptionr1   stdoutDebconfr^   rl   snapshots_wantedrY   DO_SNAPSHOTS_OPTIONr   SNAPSHOT_DIR_OPTIONpathjoindirnamer7   DEFAULT_SNAPSHOT_DIRr   remove_optionshutilrmtreeopenrp   fchmodfileno)	argvrk   config_filer#   outputexr%   r   newfiles	            r   mainr      s.    4y1}K::	q'Z'Kq'KAw
4S* &&(F
KKg&&7#1d#
 
v	&B ,F4  *=>>JJw 3V<  *=>>JJw 3ww||BGGOOO$D$8:; 
G04	@F	JW&9:zz'+>zNMM,d;W&9:+&g>'LL%L@IIgnn&. ?> 3  13r7;4 ?>s$   J/ /6K,/
K)9%K$$K),
K:__main__))rz   r   r   r   rx   rv   r
   r7   r   r8   r   r   r   r   r   r   r   r   r   r(   r+   r4   r:   ra   rh   rZ   rD   ri   rF   rK   rO   MEDIUMHIGHLOWrC   r^   rl   r   __name__r   rw    r   r   <module>r      s  
  	  
 $%,
   ) $ ww||BGGOOO$D$;= 0&
++	?'"  	

 ,-gnnkeUc*d+,gnnkeU`*a+,gllneUY*Z+,gkkmeUg*h+,gkkkeUY*Z+,gkkneUY*Z+,gkkneUY*Z+,gkkneUY*Z+,gkkkeUY*Z		*44/n zNHHQK r   