File: //usr/lib/python3/dist-packages/sos/cleaner/archives/__pycache__/__init__.cpython-310.pyc
o
i��dN; � @ sb d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z dd� Z
G dd� d�ZdS )� N)�ProcessPoolExecutor)�file_is_binaryc C sN t �| �}tj�|d�}|�|� |�� tj�||j�d�d �d�d �S )N�cleaner�/����.tarr ) �tarfile�open�os�path�join�
extractall�close�name�split)�archive_path�tmpdir�archiver � r �?/usr/lib/python3/dist-packages/sos/cleaner/archives/__init__.py�extract_archive s
$r c @ s2 e Zd ZdZg ZdZdZdZdZdZ g Z
i Zdd� Ze
dd� �Zed d
� �Zedd� �Zd
d� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zedd� �Zdd � Zd!d"� Zd#d$� ZdBd%d&�Zd'd(� Zd)d*� Z d+d,� Z!d-d.� Z"d/d0� Z#d1d2� Z$d3d4� Z%d5d6� Z&d7d8� Z'd9d:� Z(d;d<� Z)d=d>� Z*d?d@� Z+dAS )C�SoSObfuscationArchivea A representation of an extracted archive or an sos archive build
directory which is used by SoSCleaner.
Each archive that needs to be obfuscated is loaded into an instance of this
class. All report-level operations should be contained within this class.
r �undeterminedFc C s� || _ | j | _|| _| j �d�d �d�d | _| j| _t�d�| _t�d�| _ | �
� | _d| _| �
� d| _| �d | j | jf � d S )
Nr r r r �sos�sos_uiF� zLoaded %s as type %s)r �final_archive_pathr r �archive_name�ui_name�logging� getLogger�soslog�ui_log�_load_skip_list� skip_list�is_extracted�
_load_self�archive_root�log_info�description)�selfr r r r r �__init__2 s
��zSoSObfuscationArchive.__init__c C s dS )z=Check if the archive is a well-known type we directly supportFr )�cls�arc_pathr r r �
check_is_typeC s z#SoSObfuscationArchive.check_is_typec C s d| j j�� v S )Nr )� __class__�__name__�lower�r* r r r �is_sosH s zSoSObfuscationArchive.is_sosc C s
d| j v S )N�insights)� type_namer2 r r r �is_insightsL s
z!SoSObfuscationArchive.is_insightsc C s | j rt�| j�| _d S d S �N)�
is_tarfiler r r �tarobjr2 r r r r&