ó
Qº’Nc           @   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   s2   e  Z d  e 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 |  _ 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   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>4   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   getListFromFile+   s    %(   t   __name__t
   __module__t   CONFIG_OVERRIDE_DIRR   R'   R-   R9   (    (    (    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   R3   R   R<   R   R:   t   cR-   R9   R'   t   Truet   set(    (    (    sG   /usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyt   <module>   s   .