o
    4fu                     @   sN   d Z ddlmZ ddlmZ ddlZddlZddlmZ G dd dej	Z	dS )z"Classes related to cdrom handling.    )print_function)OptionalN)CdromProgressc                   @   s:   e Zd ZdZdddZdddZddd	Zed
d ZdS )Cdroma;  Support for apt-cdrom like features.

    This class has several optional parameters for initialisation, which may
    be used to influence the behaviour of the object:

    The optional parameter `progress` is a CdromProgress() subclass, which will
    ask for the correct cdrom, etc. If not specified or None, a CdromProgress()
    object will be used.

    The optional parameter `mountpoint` may be used to specify an alternative
    mountpoint.

    If the optional parameter `nomount` is True, the cdroms will not be
    mounted. This is the default behaviour.
    NTc                 C   sb   t j|  |d u rt | _n|| _|d urt jd| |r(t jdd d S t jdd d S )NzAcquire::cdrom::mountzAPT::CDROM::NoMounttruefalse)apt_pkgr   __init__r   	_progressconfigset)selfprogress
mountpointnomount r   +/usr/lib/python3/dist-packages/apt/cdrom.pyr	   1   s   
zCdrom.__init__c                 C      t j| |p| jS )zAdd cdrom to the sources.list.)r   r   addr
   r   r   r   r   r   r   A      z	Cdrom.addc                 C   r   )zIdentify the cdrom.)r   r   identr
   r   r   r   r   r   F   r   zCdrom.identc              	   C   s   |   }|du r
dS ttjdd }|tjd |D ]0}t|"}|D ]}| 	ds@||v r@ W d    dS q)W d   n1 sKw   Y  q dS )z:Check if the cdrom is already in the current sources.list.NFzDir::Etc::sourceparts*zDir::Etc::sourcelist#T)
r   globr   r   find_dirappend	find_fileopenlstrip
startswith)r   cd_idsrcfnamefobjliner   r   r   in_sources_listK   s    
zCdrom.in_sources_list)NNT)N)	__name__
__module____qualname____doc__r	   r   r   propertyr&   r   r   r   r   r       s    


r   )
r*   
__future__r   typingr   r   r   apt.progress.baser   r   r   r   r   r   <module>   s   