
Y]                 @   s  d  d l  m Z m Z d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d Z
 Gd d   d e  Z e d k re d  Z e e j d	 d
   e e j d	 d   e e j d d   e e j d	 d d   e e j d	 d d   e e j d	 d d   d S)    )NoOptionErrorNoSectionError)ConfigParserNz&/etc/update-manager/release-upgrades.dc               @   sI   e  Z d  Z d d d d d  Z d d   Z d d   Z d	 d
   Z d S)DistUpgradeConfigzDistUpgrade.cfgNc             C   s9  t  j |   t j d d d g d t j d d j   d j   } | |  _ t j	 j
 | d |  ru | d | } t j	 j | |  } g  |  _ | r x+ t j | d	  D] } |  j j |  q W|  j | g 7_ | d  k r t } | d  k	 r%x+ t j | d	  D] } |  j j |  qW|  j |  j  d  S)
NZlsb_releasez-cz-sstdoutZuniversal_newlinesTr   .z/*.cfg)SafeConfigParser__init__
subprocessPopenPIPEZcommunicatestripdatadirospathexistsjoinZconfig_filesglobappendCONFIG_OVERRIDE_DIRread)selfr   nameZoverride_dirZdefaults_dirZfrom_releaseZmaincfgZcfg r   E/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyr	   "   s&    		zDistUpgradeConfig.__init__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 | SYn Xd  S)N)
typeboolZ
getbooleanfloatZgetfloatintZgetintgetr   r   )r   sectionoptiondefaultr   r   r   getWithDefault=   s    z DistUpgradeConfig.getWithDefaultc             C   sU   y |  j  | |  } Wn t t f k
 r4 g  SYn Xd d   | j d  D } | S)Nc             S   s   g  |  ] } | j     q Sr   )r   ).0xr   r   r   
<listcomp>N   s   	 z-DistUpgradeConfig.getlist.<locals>.<listcomp>,)r   r   r   split)r   r    r!   Ztmpitemsr   r   r   getlistI   s    	zDistUpgradeConfig.getlistc             C   s   y |  j  | |  } Wn t k
 r. g  SYn Xt j j |  j |  } t j j |  sj t j d |  t	 |   } d d   | D } Wd  QRXd d   | D S)NzgetListFromFile: no '%s' foundc             S   s   g  |  ] } | j     q Sr   )r   )r$   r%   r   r   r   r&   Z   s   	 z5DistUpgradeConfig.getListFromFile.<locals>.<listcomp>c             S   s3   g  |  ]) } | j  d   r | d k r |  q S)# )
startswith)r$   sr   r   r   r&   [   s   	 )
r   r   r   r   r   r   r   loggingerroropen)r   r    r!   filenamepfr)   r   r   r   getListFromFileQ   s    	z!DistUpgradeConfig.getListFromFile)__name__
__module____qualname__r	   r#   r*   r5   r   r   r   r   r   !   s
   r   __main__r   ZDistroZMetaPkgsZForcedPurgesZSourcesZValidMirrorsZEnableApportTZFooFalse)configparserr   r   r   r   r
   os.pathr   r/   r   r   r   r6   cprintr*   r5   r#   setr   r   r   r   <module>   s   =