3
g
]                 @   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
G dd deZedkre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               @   s.   e Zd ZdddZdd Zdd Zd	d
 ZdS )DistUpgradeConfigDistUpgrade.cfgNc             C   s   t j|  tjdddgtjddj d j }|| _tj	j
|d | rT|d | }tj	j||}g | _|rx"tj|d D ]}| jj| q|W |  j|g7  _|d krt}|d k	rx"tj|d D ]}| jj| qW | j| j d S )	NZlsb_releasez-cz-sT)stdoutZuniversal_newlinesr   .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   sr   yTt |tkr| j||S t |tkr2| j||S t |tkrJ| j||S | j||S  tt	fk
rl   |S X d S )N)
typeboolZ
getbooleanfloatZgetfloatintZgetintgetr   r   )r   sectionoptiondefaultr   r   r   getWithDefault=   s    z DistUpgradeConfig.getWithDefaultc             C   sB   y| j ||}W n ttfk
r(   g S X dd |jdD }|S )Nc             S   s   g | ]}|j  qS r   )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 ||}W n tk
r$   g S X tjj| j|}tjj|sPtjd|  t	|}dd |D }W d Q R X dd |D S )NzgetListFromFile: no '%s' foundc             S   s   g | ]}|j  qS r   )r   )r%   r&   r   r   r   r'   Z   s    z5DistUpgradeConfig.getListFromFile.<locals>.<listcomp>c             S   s&   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)r   NN)__name__
__module____qualname__r
   r$   r+   r6   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   r0   r   r   r   r7   cprintr+   r6   r$   setr   r   r   r   <module>   s   =