U
    g                     @   sH   d dl mZ ddlmZmZmZmZ G dd deZG dd deZdS )	   )PostProcessor   )PopenPostProcessingErrorshell_quotevariadicc                   @   s$   e Zd Zdd Zdd Zdd ZdS )ExecPPc                 C   s   t | | t|| _d S )N)r   __init__r   exec_cmd)self
downloaderr
    r   =/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/postprocessor/exec.pyr	      s    zExecPP.__init__c                 C   s`   | j ||\}}|r&| j || S |d|d}|r\d|krL|d7 }|dt|}|S )Nfilepath	_filenamez{}z {})Z_downloaderZprepare_outtmplZescape_outtmplgetreplacer   )r   cmdinfotmplZ	tmpl_dictr   r   r   r   	parse_cmd   s    zExecPP.parse_cmdc                 C   sZ   | j D ]J}| ||}| d|  tj|dd\}}}|dkrtd| qg |fS )NzExecuting command: T)shell    zCommand returned error code )r
   r   Z	to_screenr   runr   )r   r   r   r   _Zreturn_coder   r   r   r      s    
z
ExecPP.runN)__name__
__module____qualname__r	   r   r   r   r   r   r   r      s   r   c                       s   e Zd Z fddZ  ZS )ExecAfterDownloadPPc                    s   t  j|| | d d S )Nzyt_dlp.postprocessor.ExecAfterDownloadPP is deprecated and may be removed in a future version. Use yt_dlp.postprocessor.ExecPP instead)superr	   Zdeprecation_warning)r   argskwargs	__class__r   r   r	   $   s    zExecAfterDownloadPP.__init__)r   r   r   r	   __classcell__r   r   r"   r   r   #   s   r   N)	commonr   utilsr   r   r   r   r   r   r   r   r   r   <module>   s   