U
    idh
                     @   s@   d dl mZ d dlmZ d dlmZ d dlZG dd deZdS )    )DebianPlugin)LinuxPolicy)DpkgPackageManagerNc                
       st   e Zd ZdZdZdgZdZegZdZ	dZ
ddd	d
dddddd	Zd fdd	Zdd ZedddZdd Z  ZS )DebianPolicyZDebianzthe Debian project)zCommunity Websitezhttps://www.debian.org/ZfriendlyzX/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/sbin:/usr/local/binZ	sosreport         	   
               )	ZsqueezeZwheezyZjessieZstretchZbusterZbullseyeZbookwormZtrixieZforkyNTc                    s<   t t| j||||d t| j|d| _|  jtg7  _d S )N)sysrootinitprobe_runtimeremote_exec)chrootr   )superr   __init__r   r   Zpackage_managervalid_subclassesr   )selfr   r   r   r   	__class__ =/usr/lib/python3/dist-packages/sos/policies/distros/debian.pyr   &   s    zDebianPolicy.__init__c                 C   s   ddi ||S )NZxzzxz-utils)get)r   binaryr   r   r   _get_pkg_name_for_binary/   s      z%DebianPolicy._get_pkg_name_for_binary c                 C   s   |r| j |kS tjdS )z[This method checks to see if we are running on Debian.
           It returns True or False.z/etc/debian_version)distroospathisfile)clsZremoter   r   r   check5   s    
zDebianPolicy.checkc              
   C   s   zrt dd\}d}| }|D ]"}d|kr|dd  } qBq|| jkrd| j| W  5 Q R  W S W 5 Q R X W dS  tk
r   Y dS X d S )Nz/etc/os-releaserr   ZVERSION_CODENAME=   F)open	readlinessplitstripdeb_versionsIOError)r   fpZ
rel_stringlinesliner   r   r   dist_version?   s    
"zDebianPolicy.dist_version)NNTN)r   )__name__
__module____qualname__r    ZvendorZvendor_urlsZname_patternr   r   PATHZsos_pkg_namer-   r   r   classmethodr%   r2   __classcell__r   r   r   r   r      s0     		r   )Zsos.report.pluginsr   Zsos.policies.distrosr   Z"sos.policies.package_managers.dpkgr   r!   r   r   r   r   r   <module>	   s   