ó
¤Oc           @   sö   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d Z	 d e f d „  ƒ  YZ
 e d k rò e
 d ƒ Z e j d d	 ƒ GHe j d d
 ƒ GHe j d d ƒ GHe j d d e ƒ GHe j d d d ƒ GHe j d d e ƒ GHn  d S(   iÿÿÿÿ(   t   SafeConfigParsert   NoOptionErrort   NoSectionErrorNs&   /etc/update-manager/release-upgrades.dt   DistUpgradeConfigc           B   s5   e  Z d  e d d „ Z d „  Z d „  Z d „  Z RS(   s   DistUpgrade.cfgc         C   s  t  j |  ƒ t j d d d g d t j ƒj ƒ  d j ƒ  } | |  _ t j	 j
 | d | ƒ rr | d | } n  t j	 j | | ƒ } g  |  _ | rÇ x. t j | d ƒ D] } |  j j | ƒ qª Wn  |  j | g 7_ x+ t j | d ƒ D] } |  j j | ƒ qí W|  j |  j ƒ d  S(   Nt   lsb_releases   -cs   -st   stdouti    t   .s   /*.cfg(   R    t   __init__t
   subprocesst   Popent   PIPEt   communicatet   stript   datadirt   ost   patht   existst   joint   config_filest   globt   appendt   read(   t   selfR   t   namet   override_dirt   defaults_dirt   from_releaset   maincfgt   cfg(    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyR   
   s    		c         C   s™   yz t  | ƒ t k r% |  j | | ƒ St  | ƒ t k rG |  j | | ƒ St  | ƒ t k ri |  j | | ƒ S|  j | | ƒ SWn t t	 f k
 r” | SXd  S(   N(
   t   typet   boolt
   getbooleant   floatt   getfloatt   intt   getintt   getR   R   (   R   t   sectiont   optiont   default(    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   getWithDefault!   s    c         C   s]   y |  j  | | ƒ } Wn t t f k
 r0 g  SXg  | j d ƒ D] } | j ƒ  ^ qA } | S(   Nt   ,(   R$   R   R   t   splitR   (   R   R%   R&   t   tmpt   xt   items(    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   getlist,   s    (c         C   sž   y |  j  | | ƒ } Wn t k
 r* g  SXt j j |  j | ƒ } t j j | ƒ si t j d | ƒ n  g  t	 | ƒ D] } | j
 ƒ  ^ qv } t d „  | ƒ S(   Ns   getListFromFile: no '%s' foundc         S   s   |  j  d ƒ o |  d k S(   Nt   #t    (   t
   startswith(   t   s(    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   <lambda><   s    (   R$   R   R   R   R   R   R   t   loggingt   errort   openR   t   filter(   R   R%   R&   t   filenamet   pR,   R-   (    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   getListFromFile3   s    %N(   t   __name__t
   __module__t   CONFIG_OVERRIDE_DIRt   NoneR   R(   R.   R:   (    (    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyR   	   s   		t   __main__R   t   Distrot   MetaPkgst   ForcedPurgest   Sourcest   ValidMirrorst   EnableApportt   Foot   False(   t   ConfigParserR    R   R   R   t   os.pathR   R4   R   R=   R   R;   t   cR.   R:   R(   t   Truet   set(    (    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   <module>   s   6