Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/hgext/__pycache__/ |
Upload File : |
o �]Lb] � @ sD d Z ddlmZ ddlZddlmZ dZG dd� de�Zdd � Z dS ) a: send ui.log() data to a subprocess (EXPERIMENTAL) This extension lets you specify a shell command per ui.log() event, sending all remaining arguments to as environment variables to that command. Positional arguments construct a log message, which is passed in the `MSG1` environment variables. Each keyword argument is set as a `OPT_UPPERCASE_KEY` variable (so the key is uppercased, and prefixed with `OPT_`). The original event name is passed in the `EVENT` environment variable, and the process ID of mercurial is given in `HGPID`. So given a call `ui.log('foo', 'bar %s ', 'baz', spam='eggs'), a script configured for the `foo` event can expect an environment with `MSG1=bar baz`, and `OPT_SPAM=eggs`. Scripts are configured in the `[logtoprocess]` section, each key an event name. For example:: [logtoprocess] commandexception = echo "$MSG1" > /var/log/mercurial_exceptions.log would log the warning message and traceback of any failed command dispatch. Scripts are run asynchronously as detached daemon processes; mercurial will not ensure that they exit cleanly. � )�absolute_importN)�procutils ships-with-hg-corec @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) � processloggerz_Map log events to external commands Arguments are passed on as environment variables. c C s t |�d��| _d S �Ns logtoprocess)�dict�configitems�_scripts)�self�ui� r �4/usr/lib/python3/dist-packages/hgext/logtoprocess.py�__init__6 � zprocesslogger.__init__c C s t | j�|��S )N)�boolr �get)r �eventr r r �tracked9 s zprocesslogger.trackedc C sp | j | }d}t|�|kr|d |� d }|t�� |d�}|�dd� |�� D �� t�|�}tj||dd� d S )Ni�� s (truncated))s EVENTs HGPIDs MSG1c s s$ � | ] \}}d |� � |fV qdS )s OPT_%sN)�upper)�.0�key�valuer r r � <genexpr>K s � �z$processlogger.log.<locals>.<genexpr>T)�shell) r �len�os�getpid�update�itemsr �shellenviron�runbgcommand) r r r �msg�opts�script�maxmsg�env�fullenvr r r �log<