
    ip                    x    d Z ddlmZ ddlmZ ddlmZ ddlmZ erddlmZ ddZ	e
dk    r e	e           dS dS )z>
(c) 2006-2013, Armin Rigo, Holger Krekel, Maciej Fijalkowski
    )annotations)TYPE_CHECKING)Literal)cast)Channelchannelr   returnNonec           	         dd l dd ldd lddlm t          d                                           \  g dfdd fd g            d}                     d           D ]\  }\  }}}t          t                                                     }                     d|t                    dz   d          f           |`|r%t          |          |k    rt          d|          t          |d          }|                    |           |                                 	 |r                    ||                               |||f           n# t          $ r Y nw xY w~                     d                                            }|dk    rt          d|          \  }	}
}j                            |
          }	  |           n# t          $ r Y nw xY w|	dk    rj                            |          }n|	dk    s
J |	            |}                    ||                                            }|dk                         d           d S )Nr   )md5ztuple[str, dict[str, object]]pathstrr	   r
   c                    |                                sJ 	                     |            d S # t          $ r                     | d           Y d S w xY w)NT)
startswithunlinkOSErrorrmtree)r   destdirosshutils    [/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/execnet/rsync_remote.pyremovezserve_rsync.<locals>.remove   sk    w'''''	&IIdOOOOO 	& 	& 	&MM$%%%%%%	&s   1  AArelcomponents	list[str]c                   	                      |           }n# t          $ r d }Y nw xY w                                }t          |t                    r|r1                    |j                  s                    |            d }|s                    |            |	                    d          }|r
                    | |dz             i }|D ]2}j                            | |          } |g ||           d||<   3                    d          rB                    |           D ].}||vr&j                            | |          }	 |	           -d S d S |t          |t                    sJ d }
|r                    |j                  r|\  }}}||j        k    rn||j        k    rTt'          | d          } |                                                                          }
|                                 n5|r&||j        k    r
                    | |dz             d S d S  |                                d||
ff                               | |f           d S d S )Nr   i  Tdeleterbsend)lstatr   receive
isinstancelistS_ISDIRst_moder   makedirspopchmodr   joingetlistdirtupleS_ISREGst_sizest_mtimeopenreaddigestcloser   append)r   r   stmsgmode
entrynames	entrynamedestpath	othername	otherpathchecksummsg_mode	msg_mtimemsg_sizefr   r   modifiedfilesoptionsr   receive_directory_structurer   stats                  r   rC   z0serve_rsync.<locals>.receive_directory_structure    s   	$BB 	 	 	BBB	ooc4   +	. $,,rz22 		$ "D!!!771::D -
 te|,,,J  - -	7<<i88++H6Q6Qy6QRRR(,
9%%{{8$$ *!#D!1!1 * *I 
22$&GLLy$A$A	y)))	* ** * _c5)))))H !<<
++ !471Hi2:--"bk11 t,,#&3qvvxx==#7#7#9#9				! h"*&<&<x%'7888F4LLLLL&=(";<===  $-----) _s    ((F)	list_doneNack   zfile modified during rsync: wb)linksN*   z,tuple[Literal['linkbase', 'link'], str, str]linkbaselink)doneN)r   r   r	   r
   )r   r   r   r   r	   r
   )r   r   rD   hashlibr   r   r    r   byteslenr   r/   writer2   r'   utimer   r(   symlink)r   STRICT_CHECKr   r6   timesizedatar@   r5   _typerelpath	linkpointsrcr   r   rA   rB   r   rC   r   r   rD   s   `            @@@@@@@@@r   serve_rsyncr\      s)   IIIMMMKKK;W__=N=NOOGWM& & & & & & & &1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.f  ,,,LLL$%%%$1    tT4E7??,,--eT#g,,"2"4"456777 GD		T 1 1ETEEFFFT4  AGGDMMMGGIII	 %t$$$HHTD$<(((( 	 	 	D	DLL!!!
//

C
))$(:C%
 %
!w	 w||GW--	F4LLLL 	 	 	D	J',,w	22CCF???E???C


3oo! ))" LL     s$   0E22
E?>E?$G0 0
G=<G=__channelexec__N)r   r   r	   r
   )__doc__
__future__r   typingr   r   r   execnet.gateway_baser   r\   __name__r        r   <module>re      s     # " " " " "                         -,,,,,,m! m! m! m!`    K ! rd   