File: //lib/python3/dist-packages/DistUpgrade/__pycache__/apt_clone.cpython-310.pyc
o
    \�Ha��  �                   @   s�   d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZ dejv rgej�dd� ej�dd� G d	d
� d
e�ZG dd� de�ZdS )
�    )�print_functionN)�FetchFailedException)�BytesIO�open�APT_CLONE_DEBUG_RESOLVERzDebug::pkgProblemResolver�1zDebug::pkgDepCache::AutoInstallc                   @   sF   e Zd ZdZdZdd� Zdd� Zddd	�Zd
d� Zdd
� Z	dd� Z
dS )�LowLevelCommandszN calls to the lowlevel operations to install debs
        or repack a deb
    z/usr/bin/dpkg-repackc                 C   sF   |sdS ddg}|dkr|� dd� |� d|� t�|| �}|dkS )NT�dpkgz-i�/r   �chroot�   )�insert�
subprocess�call)�self�debfiles�	targetdir�install_cmd�ret� r   �7/usr/lib/python3/dist-packages/DistUpgrade/apt_clone.py�install_debs3   s   zLowLevelCommands.install_debsc                 C   sh   t j�| j�std| j ��| jg}t �� dks&t j�d�s dS ddg| }tj||g |d�}|dkS )z$ dpkg-repack pkgname into targetdir z
no '%s' foundr   z/usr/bin/fakerootN�fakerootz-u)�cwd)�os�path�exists�dpkg_repack�IOError�getuidr   r   )r   �pkgnamer   �
repack_cmdr   r   r   r   �
repack_deb=   s   zLowLevelCommands.repack_debNc                 C   s,   |d u r
t �� d }t�d||g�}|dkS )N�CODENAME�debootstrapr   )�lsb_release�get_distro_informationr   r   )r   r   �distror   r   r   r   r$   I   s   zLowLevelCommands.debootstrapc                 C   s   t �dd|d|g�}|dkS )Nzapt-keyz	--keyring�addr   �r   r   )r   �fromkeyfile�intokeyfiler   r   r   r   �
merge_keysO   s   
�zLowLevelCommands.merge_keysc                 C   s   t �dd||g�}|dkS )N�mountz--bindr   r)   )r   �olddir�newdirr   r   r   r   �
bind_mountT   s   zLowLevelCommands.bind_mountc                 C   s   t �d|g�}|dkS )N�umountr   r)   )r   �binddirr   r   r   r   �bind_umountX   s   zLowLevelCommands.bind_umount�N)�__name__�
__module__�__qualname__�__doc__r   r   r"