U
    ̋_
                     @   s`   d Z dZdZddlZddlZddlZddlZddlmZ dddZ	e
dkr\e  e	d	d
 dS )z5Apport integration to provide better problem reports.z%Sebastian Heinlein <devel@glatzor.de>create_report    N   )enumsc           	   
   C   sj  t j rt dkrdS d}t d}| |d< d}zt j|}W n0 tk
rt } zd|jkrdd}W 5 d}~X Y nX d	||f |d
< d|d< ||d< d|d< |	  |rBt
|j|d< |j|d< tdd |jD |d< tdd |jD |d< t|j|d< |j|d< |j|d< |jd |d< |jd |d< tj|j}t j||}|| W 5 Q R X dS )zCreate an apport problem report for a given crash.

    :param error: The summary of the error.
    :param traceback: The traceback of the exception.
    :param trans: The optional transaction in which the crash occured.
    /Nr   ZCrashZTitleZ	aptdaemonzdoes not existunknownz%s %sZPackageZSourcePackage	Tracebackz/usr/sbin/aptdExecutablePathZ
AnnotationZTransactionRolec                 S   s   g | ]}t |qS  list.0lr	   r	   1/usr/lib/python3/dist-packages/aptdaemon/crash.py
<listcomp>>   s     z!create_report.<locals>.<listcomp>ZTransactionPackagesc                 S   s   g | ]}t |qS r	   r
   r   r	   r	   r   r   ?   s     ZTransactionDependsZTransactionKwargsZTransactionLocaleZTransactionOutputZTransactionErrorCoder   ZTransactionErrorDetails)apportZ	packagingenabledosgetcwdReportZget_version
ValueErrormessageZadd_os_infor   Zget_role_error_from_enumZrolestrZpackagesZdependskwargsZlocaleoutputZ_error_propertypathbasenametid	fileutilsZmake_report_filewrite)	error	tracebackZtransZuidreportpackageZpackage_versionefr	   r	   r   r   !   s:    




__main__ZtestZ	testtrace)N)__doc__
__author____all__r   r   apport.fileutilsapt_pkg r   r   __name__Zinit_configr	   r	   r	   r   <module>   s   
*