3
_
                 @   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j  e	d	d
 dS )z5Apport integration to provide better problem reports.z%Sebastian Heinlein <devel@glatzor.de>create_report    N   )enumsc       	      C   sl  t jj  stj dkrdS d}t jd}| |d< d}yt jj|}W n0 tk
rv } zd|jkrfd}W Y dd}~X nX d	||f |d
< d|d< ||d< d|d< |j	  |rDt
j|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|j}t jj||}|j| W d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   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   
*