
    ^j	                        d dl mZ d dlZd dlZd dlmZ d dlmZ  ee      j                         j                  Z e ej                  dedz  dz  dz              Zd	Zed
z  Zedz  Zedz  ZddZdddZddZy)    )annotationsN)Path)	CORE_ROOTORIGUS_CORE_PYTHONz.venvbinpythonconnectors.techexpertruntimeztechexpert_sync.logztechexpert_sync.pidc                 b   t         j                         sy 	 t        t         j                  d      j	                               } t        d|        }|j                         st         j                  d       y 	 |dz  j                  dd      }|j                  d	      }||d
z   d  j                         }|r|d   dk(  rt         j                  d       y 	 |dz  j                         j                  dd      j                  dd      }d|vsdd| vrt         j                  d       y 	 	 t        j                  | d       | S # t
        $ r t         j                  d       Y y w xY w# t
        $ r Y w xY w# t
        $ r Y Xw xY w# t        $ r t         j                  d       Y y w xY w)Nutf-8encodingT)
missing_okz/proc/statreplacer   errors)   r   Zcmdline        )r   r	   z sync )SYNC_PIDexistsint	read_textstrip	Exceptionunlinkr   rfindsplit
read_bytesr   decodeoskillOSError)pidprocr   rparentailcmds         ;/var/www/origus_pro_usr/data/www/origus.pro/core/runtime.py_running_pidr/      s   ??6""G"4::<= 
sen	D;;=4(6k$$gY$Gzz#&()_""$DGSLOOtO,T)^'')11%=DDWT]D^"#-!C5	1IOOtO,T 2J6
As
)  64(6      64(6sI   -E	 :AE. AE= 1F 	E+*E+.	E:9E:=	F	F	F.-F.c                   t               }|rt        d| d      t        j                  dd       t	        t
              dt        dg}| r|d| gz  }t        j                  dd	
      }|j                  d| rd| z   nd d       |j                          t        j                  |t	        t              |t        j                  dd      }t        j!                  t	        |j"                        d	
       |j"                  S )Nu>   Синхронизация уже выполняется (PID z).T)parentsexist_okz-msyncz
--documentar   r   z

===== START zONE ALLz =====
)cwdstdoutstderrstart_new_session	close_fds)r/   RuntimeErrorRUNTIME_DIRmkdirstrPYTHONCONNECTOR_MODULESYNC_LOGopenwriteflush
subprocessPopenBASE_DIRSTDOUTr   
write_textr)   )document_slugrunningr-   logr*   s        r.   
start_syncrM   -   s    NG[\c[ddfghhdD1	VT*62C]++c7+CII !5E RRZ[\IIK			HS
0A0A
D DHHw788O    c                     t               } d}t        j                         r	 t        j                  dd      }|dd  }t        |       | |dS # t        $ r Y w xY w)N r   r   r   i )rK   r)   log_tail)r/   rA   r   r   r    bool)r)   r,   texts      r.   
sync_staterT   ?   sd    C	D	##WI#FDfgD 3icT::  		s   A 	AA)returnz
int | None)N)rJ   z
str | NonerU   r   )rU   dict)
__future__r   r&   rE   pathlibr   core_dbr   __file__resolveparentrG   getenvr?   r@   r<   rA   r   r/   rM   rT    rN   r.   <module>r_      s    " 	   >!!#**	ibii,h.@5.H8.ST	U* )#....6:$	;rN   