Sindbad~EG File Manager
3
�f3 � @ sX d dl mZ d dlmZ d dlmZ d dlmZ d dlm Z d dl
Z
G dd� de�ZdS ) � )�UbuntuPlugin)�DebianPolicy)�SnapPackageManager)�DpkgPackageManager)�MultiPackageManagerNc sx e Zd ZdZdZddgZdZd Zd
Zd
Z dZ
d� fdd� Zeddd��Z
dd� Z� fdd�Zdd� Z� fdd�Z� ZS ) �UbuntuPolicy�UbuntuZ Canonical�Community Website�https://www.ubuntu.com/�Commercial Support�https://www.canonical.comz9/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesz):/usr/local/sbin:/usr/local/bin:/snap/binz,https://files.support.canonical.com/uploads/ZubuntuZputNTc sv t t| �j||||d� tttg| j|d�| _y| jjd�d dkrJd| _ W n t
k
r` Y nX | jtg7 _d S )N)�sysroot�init�
probe_runtime�remote_exec)ZprimaryZ fallbacks�chrootr Z sosreportZpkg_managerZsnapz /snap/bin)
�superr �__init__r r r r
Zpackage_managerZpkg_by_nameZsos_bin_path� TypeErrorZvalid_subclassesr )�selfr
r r r )� __class__� �/usr/lib/python3.6/ubuntu.pyr ! s
zUbuntuPolicy.__init__� c C sJ |r| j |kS y"tdd��}d|j� kS Q R X W n tk
rD dS X dS )z[This method checks to see if we are running on Ubuntu.
It returns True or False.z/etc/lsb-release�rr NF)�distro�open�read�IOError)�clsZremote�fpr r r �check7 s
zUbuntuPolicy.checkc C sl yNt dd��:}|j� }x*|D ]"}d|krt|jd�d j� �S qW W dQ R X dS ttfk
rf dS X dS )z7 Returns the version stated in DISTRIB_RELEASE
z/etc/lsb-releaser ZDISTRIB_RELEASE�=� NF)r � readlines�float�split�stripr �
ValueError)r r �lines�liner r r �dist_versionE s
$zUbuntuPolicy.dist_versionc s, | j j| j�r| j| jfS tt| �j� S d S )N)�
upload_url�
startswith�_upload_url�_upload_user�_upload_passwordr r �get_upload_https_auth)r )r r r r1 R s z"UbuntuPolicy.get_upload_https_authc C s | j j| j�rdS | j� S d S )NzCanonical Support File Server)r, r- r. �get_upload_url)r r r r �get_upload_url_stringX s z"UbuntuPolicy.get_upload_url_stringc sH | j s| j j| j�r:| js"| jS tjj| j�}| j| S tt| �j � S )N)
r, r- r. Zupload_archive_name�os�path�basenamer r r2 )r Zfname)r r r r2 ^ s
zUbuntuPolicy.get_upload_url)r r
)r r zb/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/sbin:/usr/local/bin:/snap/bin)NNTN)r )�__name__�
__module__�__qualname__r ZvendorZvendor_urls�PATHr. r/ r0 Z_upload_methodr �classmethodr! r+ r1 r3 r2 �
__classcell__r r )r r r s$
r )Zsos.report.pluginsr Zsos.policies.distros.debianr Z"sos.policies.package_managers.snapr Z"sos.policies.package_managers.dpkgr Zsos.policies.package_managersr r4 r r r r r �<module> s
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists