o
    w7e"                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z
 eeZdZejdejdejd	iZd
d Zdd Zdd ZdS )    N)StringIO)log)util)version   )z2Cloud-init %(version)s received SIGINT, exiting...   )z3Cloud-init %(version)s received SIGTERM, exiting...r   )z3Cloud-init %(version)s received SIGABRT, exiting...r   c                 C   sz   ||ks| sd S t | }d|d  }|d||jf  |d||jf  |d||jf  t| j|d || d S )N    z%sFilename: %s
z%sFunction: %s
z%sLine number: %s
r   )inspectgetframeinfowritefilenamefunctionlineno_pprint_framef_back)framedepth	max_depthcontents
frame_infoprefix r   :/usr/lib/python3/dist-packages/cloudinit/signal_handler.pyr      s   
r   c                 C   sb   t |  \}}|dt i }t }|d|  t|dt| tj|	 ddt
d t| d S )Nr   z%s
r   TF)consolestderrr   )EXIT_FORvrversion_stringr   r   r   BACK_FRAME_TRACE_DEPTHr   	multi_loggetvalueLOGsysexit)signumr   msgrcr   r   r   r   _handle_exit*   s   r(   c                  C   s.   d} t  D ]}t|t q| tt 7 } | S )Nr   )r   keyssignalr(   len)sigs_attachedr%   r   r   r   attach_handlers4   s
   r-   )r
   r*   r#   ior   	cloudinitr   loggingr   r   r   	getLogger__name__r"   r   SIGINTSIGTERMSIGABRTr   r   r(   r-   r   r   r   r   <module>   s    
	
