^dA(ZddlZddlZddlZddlZddlZddlmZGddZdgZdS)N)_c@eZdZdZdZdZd dZdZdZdZ d Z dS) ALCConfigcd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_gd|_gd|_gd |_d |_d|_d |_d |_dS) NFpagertextbothTz/var/log/apt/listchanges.log) confirmdebugshow_allheadersverbosereverse dump_seenselect_frontend no_networkignore_apt_assumeignore_debian_frontendtitled) frontend email_address email_formatlatestlogfilter save_seensincewhich)browserrxtermr)rhtml)r news changelogs)apt_moderprofilerrrrr r r r rrrrrrrrrrrr _bool_opts _value_opts_cfgfile_only_optsquietfrontend_from_env_allowed_email_formats_allowed_which)selfs '/usr/share/apt-listchanges/ALCConfig.py__init__zALCConfig.__init__!s     !"         $!&&+# 1        # # #  !&&6#<cjtj|_|j|dSN) configparser ConfigParserparserread)r-files r.r6zALCConfig.readfs."/11  r0c|j|jr|j|jD]}d}|j|j|r||jvr!|j|j|}nX||jvs ||jvr!|j |j|}n%tj td|zt|||dSdS)Nz%Unknown configuration file option: %s)r5 has_sectionr%options has_optionr& getbooleanr'r(getALCLogwarningrsetattr)r-optionvalues r.exposezALCConfig.exposejs ; " "4< 0 0 -+--dl;; - -;))$,??!00 $ 6 6t|V L L4#333$BY8Y8Y $  f E Eq)P'Q'QTZ'Z[[[ fe,,,, - - - -r0Nc$t|||Sr2)getattr)r-rAdefvalues r.r=z ALCConfig.getxstVX...r0c|dkr tj}n tj}|t dtj|dS)NrzerrorrjoinrHrL)r-rQrRrSs r._check_allowedzALCConfig._check_allowedsb '>>J aabb"%cdii>P>PQQR T T T  r0c|js|jrdS|s|d|D]}tj|d}|dkr:t jtdd|iztj dtj |s:t jtdd|iztj dtj |tj s:t jtdd|iztj ddS)NrTz.debz&%(deb)s does not have '.deb' extensiondebz'%(deb)s does not exist or is not a filez%(deb)s is not readable)r$rrOospathsplitextr>rUrrHrLisfileaccessR_OK)r-debsrYexts r. _check_debszALCConfig._check_debss) = DN  F  JJqMMM  C'""3''*Cf}} QGHHESV<WXXX 7>>#&&  QHIIUTWLXYYY 9S"'**  Q899USMIJJJ   r0c& tj|dddgdd|jDzd|jDz\}}nQ#tj$r?}t jt |tjdYd}~nd}~wwxYw|D] \}}|dkr||_ |dkrd|_ !|j |j rd |_ nd |_ | d tj vr'tjd |_d|_d|_d \}}} |D]k\}}|d kr|d"|dvrd|_.|dvr||_:|dkr||_H|dkr"||||j|_p|dvrd|_||dvr|}|dvr|}|dvrd} |dvrd|_|dvr||_|dkrd|_|dkr"||||j|_|dkrd|_|dkrd|_|dvr d|_ |dkr d|_!|dkr d|_"&|d kr d|_5|d!kr d|_#D|d"kr d#|_#S|d$vr ||_$`|d%vr||_%m|jd&krd|_|jd&krd|_|j&|j's|8| r6t jtQd'tjdn|| r||_&| |_'|j&OtS|dkr5t jtQd(tjdd|_|j*|j's|8| r6t jtQd)tjdn|| r||_*| |_'|j r.|js'tjd*d+d,krd|_+d#|_|,||S)-NrTzvf:s:cah)aptzprofile=helpallz save_seen=c:g|]}|ddS)r-replace.0xs r. z$ALCConfig.getopt..s&CCCAAIIc3''CCCr0c@g|]}|dddzS)rrh=rirks r.rnz$ALCConfig.getopt..s+GGGAIIc3''+GGGr0z --profilez--aptTrdcmdlineAPT_LISTCHANGES_FRONTEND)NNFz--helpr)z-vz --verbose)z-fz --frontendz--email-addressz--email-format)z-cz --confirmz--sincez--latest)z-az --show-allz--all)z-hz --headers)z --save-seenz --save_seenz --dump-seenz--whichz--debugz --reverse)z-nz --no-networkz--select-frontendz--ignore-apt-assumez--ignore-debian-frontendz--titledz --untitledFz--logz--filternonez7--since= and --show-all are mutually exclusivez<--since= expects a path to exactly one .deb archivez2--latest= and --show-all are mutually exclusiveDEBIAN_FRONTENDnoninteractive)-getoptr&r' GetoptErrorr>rUstrrHrLr%r$rCrZenvirongetenvrr*rrOrrrWr+rr r rrr,rr rrrrrrrrr rlenrr)rb) r-argvoptlistargserrrRrQrrr s r.rwzALCConfig.getopts  $mDHjC&C&C& DC$/CCC CDHGT5EGGGCH  OWdd!    LS " " " HQKKKKKKKK    % %HCk!!"  $  < } )$ (   & 3 3I&@AADM%)D "*.D '$7! . ". "HCh 1 +++# ,,, # )))%(""((($($7$7S$B]$^$^!!+++# ##$$555+++# 666!$ %%!% !!!00c4;NOO  !!!  ### ..."&+++'+$$---)-&&222.2++ """  $$# !!$$!   ' '!%D  >V # #!DN Z # # X  QXYYZZZ  ( DJ$DM : !4yyA~~ Q]^^___ !DN [ $ $ X  QSTTUUU  8  DK$DM M !$"= !i)2..2BBBDJ DL  sAA B5BBr2) __name__ __module__ __qualname__r/r6rCr=rOrWrbrwr0r.rr sC=C=C=J - - -////"~~~~~r0r) r3rwrHrZr>ALChacksrr__all__rr0r.rs2  zzzzzzzzx /r0