
    i                         S r SSKJr  SSKJrJr  SSKrSSKr\R                  (       a  S r	OSSK
J	r	  S	 r " S
 S\5      r\rg)zExecute processes   )PostProcessor   )util	formatter    Nc                 2    U R                  SS5      n SU  S3$ )N"z\")replace)ss    J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/postprocessor/exec.pyquoter      s    IIc5!1#Qx    )r   c                 ^    [        U [        5      (       a  U R                  S5      S   $ U S   $ )N r   )
isinstancestr	partition)argss    r   trimr      s,    #-dC#8#8DNN3AFFdAFFr   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ExecPP   c                 J   [         R                  " X5        UR                  S5      =n(       a3  U Vs/ s H  o@R                  U5      PM     snU l        U R
                  nOCU R                  US   5      u  oPl        UR                  SS5      (       a  U R                  U l        UR                  SS5      U l	        SU l
        SU l        UR                  S5      (       a2  [        R                  (       a  [        R                  U l        OSU l
        UR                  S	5      nUc  S
nO&[!        U["        5      (       a  UR%                  S5      nUR'                  U Vs0 s H  owU_M     snU5        U R)                  X5      (       a  U R+                  U5        g g s  snf s  snf )NcommandscommandasyncFverboseTr   sessionevent)after,)r   __init__get_prepare_cmdcmds	exec_manyr   _popen_execr   r   creationflagsr   WINDOWS
subprocessCREATE_NEW_PROCESS_GROUPr   r   splitregister_hooks_archive_init_archive_register)selfjoboptionsr%   cexecuteeventsr   s           r   r"   ExecPP.__init__   sQ   t);;z**4*7;<t!**1-t<DInnG!%!2!2793E!FGY{{7E**![[
{{9d3;;y!!||%/%H%H"#W%>F$$\\#&F?u7N?Ic++""3' ,/ =* @s   FF c                    [        U[        5      (       a3  [        R                  " S5      R                  U l        U R                  U4$ U R                  U Vs/ s H  n[        R                  " U5      PM     sn4$ s  snf )Nz@(?i)\{(_directory(?:_unc)?|_filename|_(?:temp)?path(?:_unc)?|)\})
r   r   r   resub_subexec_string	exec_listr   parse)r1   cmdargs      r   r$   ExecPP._prepare_cmd=   si    c30114 I ##S((>>C#HCSIOOC$8C#HHH#Hs    A<c                 L   U R                   nUR                  nU(       a  UR                  U5      (       a  g UR                  US'   UR                  US'   UR
                  US'   UR                  US'   [        R                  (       a  UR                  US'   UR                  US'   U R                   Vs/ s H  oDR                  U5      PM     nn[        R                  R                  US   5      US'   U R                  US5      nU(       a  UR!                  U5        U$ s  snf )	N
_directory	_filename	_temppath_path_directory_unc	_path_uncr   F)archivekwdictcheck	directoryfilenametemppathpathr   r*   realdirectoryrealpathr   
format_mapos
expanduserr(   add)r1   pathfmtrI   rJ   r@   r   retcodes          r   r=   ExecPP.exec_listF   s    ,,w}}V,,&00|%..{%..{!,,w<<'.'<'<F#$")"2"2F;26))<)3v&)<''$$T!W-Q**T5)KK =s   4D!c                 .   U R                   nU(       a!  UR                  UR                  5      (       a  g Xl        U R	                  U R
                  U R                  5      nU R                  US5      nU(       a  UR                  UR                  5        U$ )NT)	rI   rK   rJ   rV   r;   _replacer   r(   rU   )r1   rV   rI   r   rW   s        r   r<   ExecPP.exec_string]   sh    ,,w}}W^^44yy		2**T4(KK'r   c                 (   U R                   =n(       a(  UR                  UR                  5      (       a  g SU l         SnU R                   H  u  pEXPl        U" U5      =n(       d  M    O   U(       a!  X l         UR                  UR                  5        U$ )NFr   )rI   rK   rJ   r%   r   rU   )r1   rV   rI   rW   r5   r   s         r   r&   ExecPP.exec_manyj   sz    ll"7"}}W^^,, DL!YYMGI!'**w*	 ' "LKK'r   c                     U R                  X5      R                  5       =n(       a9  U R                  R                  SU R                  (       a  UO
[        U5      U5        U$ )Nz,'%s' returned with non-zero exit status (%d))r'   waitlogwarningr   r   )r1   r   shellrW   s       r   r(   ExecPP._exec|   sK    kk$.335575HHK%)\\TtDz7Lr   c                     U R                   R                  SU R                  (       a  UO
[        U5      5        [        R
                  " UUU R                  U R                  S9$ )NzRunning '%s')rb   r)   start_new_session)r`   debugr   r   r   Popenr)   r   )r1   r   rb   s      r   r'   ExecPP._popen   sG    ~t||tdLzz,,"ll	
 	
r   c           	      ~    SSSSSSSSS.US   R                  5          n[        [        U R                  U5      5      $ )	NrO   rQ   rN   rL   rP   rM   ) rF   rH   rE   _temppath_uncrC   rG   rD   r   )lowerr   getattrrV   )r1   matchattrs      r   rZ   ExecPP._replace   sN    $$((()-(	
 (..
	 WT\\4011r   )	r(   r;   rI   r   r%   r)   rV   r   r   N)__name__
__module____qualname____firstlineno__r"   r$   r=   r<   r&   r(   r'   rZ   __static_attributes__ r   r   r   r      s+    (<I.$
2r   r   )__doc__commonr   rj   r   r   r+   rS   r*   r   shlexr   r   __postprocessor__rv   r   r   <module>r{      sF     !   	 << Gy2] y2x  r   