File: //lib/python3/dist-packages/DistUpgrade/__pycache__/DistUpgradeAptCdrom.cpython-38.pyc
U
٪zc�1 � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
m
Z G dd� de�Z
G dd� de�ZdS )� N)�gettextc @ s e Zd ZdZdS )�
AptCdromErrorz% base exception for apt cdrom errors N)�__name__�
__module__�__qualname__�__doc__� r r �A/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyr # s r c @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zd"dd�Zd#dd�Z
dd� Zd$dd�Zdd� Zd%dd�Zdd � Zejd!k r�eZdS )&�AptCdromz represents a apt cdrom object c C s0 || _ || _t� | _t� | _t� | _t�� d S )N)�view� cdrompath�set�packages�
signatures�i18n�apt_pkgZinit_config)�selfr �pathr r r �__init__+ s zAptCdrom.__init__c C sB t j�tj�d�tj�d��}t j�|| �r>t� || |� dS )z\ restore the backup copy of the cdroms.list file
(*not* sources.list)!
�
Dir::State�Dir::State::cdromsN)
�osr �joinr �config�find_dir�find�exists�shutil�copy)r �
backup_ext�
cdromstater r r �restore_backup4 s
�zAptCdrom.restore_backupc C sr | � � }| �|| j�}tj�d�}t|��}|�� }W 5 Q R X |�|d| �}t|d��}|� |� W 5 Q R X dS )z comment out the cdrom entry �Dir::Etc::sourcelistz# %s�wN)
�
_readDiskName�_generateSourcesListLiner r r � find_file�open�read�replace�write)r �diskname�pentry�sourceslist�f�contentr r r �comment_out_cdrom_entry? s
z AptCdrom.comment_out_cdrom_entryc C s< t � }t � }t � }tj| jdd�D �]\}}}|�d�sB|�d�rP|dd�= q"q"d|kr\q"q"d|krz|�tj�|d�� q"d|kr�|�tj�|d�� q"d |ks�d
|kr�t� d| � q"d|kr�|�tj�|d�� q"d
|k�rt�
tj�|d
��D ]}|�tj�|d
|�� q�q"tj�|�d dkr"|dd�= q"|||fS )z|
scan the CD for interessting files and return them as:
(packagesfiles, signaturefiles, i18nfiles)
T)�topdownzdebian-installerz
dist-upgraderNz.aptignrZPackageszPackages.gzZSourcesz
Sources.gzz+Sources entry found in %s but not supportedzRelease.gpgr � Zpool)r
r �walkr �endswith�addr r �logging�error�listdir�split)r r r r �root�dirs�filesr. r r r �_scanCDJ s6
�
�
zAptCdrom._scanCDc C sl t j�d�}t �� }|�tjj�� �}| � � }t
|d��*}|�d||f � |�d||f � W 5 Q R X dS )z update apts cdrom.list r �az
CD::%s "%s";
zCD::%s::Label "%s";
N)r r r&