2> d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z d dl
mZ ej e
ZdZe d Zd ZdS ) N)StringIO)contextmanager)wrapsz&/usr/share/cloudlinux/hooks/listeners/c # K t j }t j } | p
t t _ |p
t t _ d V |t _ |t _ d S # |t _ |t _ w xY w)N)sysstdoutstderrr )stdostder r s /builddir/build/BUILDROOT/alt-python27-cllib-3.4.36-1.el9.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/public_hooks/lib/helpers.pycapture_outputr
sq
ZF
ZF'XZZ
'XZZ
s 8A. .Bc J t fd }d|_ |S )a,
Magic decorator that calls all subclass methods
that override base decorated one.
Requirements:
- subclass must be defined in .py file in LISTENERS_DIRECTORY
- subclass must NOT start with '_' char
- subclass must override base event method (the one with '@hook_method')
c . | j D ]}t j t j | j }t j t t j | k r#t d|t | |j
d rt | j }t |dd r(t dj |j t dj |j t# j }t% t% }} t' || 5 ||i | d d d n# 1 swxY w Y n# t( $ r t* j j d|j j g| | d t d
|j j d Y nw xY wt# j |z
} | }
|
r't d
j |j |
| }|r't dj |j | t dj | # t# j |z
} | }
|
r't d
j |j |
| }|r't dj |j | t dj | w xY wt dj t j t j t dj || d S )Nz,%s is not in %s directory; it is in %s, skip_is_magic_methodFz skip %s is not implemented in %szexecuting %s:%sz
{{ default }})r r )fingerprintextrazlistener %s:%s crashed )exc_infoz8captured stdout of %s:%s
~BEGIN OUTPUT~
%s
~END OUTPUT~
z8captured stderr of %s:%s
~BEGIN OUTPUT~
%s
~END OUTPUT~
zrunning %s: %.4f elapsedz.%s executed by the user with uid %s and gid %szended %s(%s, %s)) __class____subclasses__ospathdirnameinspect getmodule__file__normpathLISTENERS_DIRECTORYloggerwarning__name__
startswithgetattrdebuginfotimer r
ExceptionravenbaseRavencaptureExceptiongetvaluegeteuidgetegid)
selfargskwargssubclass
listener_pathlistenernowr r elapsed
stdout_str
stderr_strfuncs
r _wrappedzhook_method.