ó
    6°hú  ã                  óÈ   • S SK Jr  S SKrSSKJr  SSKJrJrJrJ	r	J
r
JrJr  SSKJrJr        SS jr\R"                  \R$                  \R&                  S.rS	 rS
 rS rg)é    )ÚannotationsNé   )Ú_)Ú	chgserverÚcmdutilÚcommandserverÚerrorÚhgwebÚpycompatÚutil)ÚprocutilÚurlutilc                óH  ^ ^^• 0 nT S   (       at  T S    Hk  nUR                  S5      (       a
  USS US'   M#  UR                  S5      (       a
  USS US'   MC  US	:w  d  MK  [        R                  " [        S
5      U-  5      e   [        R
                  (       Ga=  T S   (       Ga2  SU;   Ga+  [        R                  R                  US   5      (       Ga  [        R                  R                  5         [        R                  R                  5         [        R                  " US   [        R                  [        R                  -  [        R                   -  5      n	 [        R"                  " U	[        R                  R%                  5       5        [        R"                  " U	[        R                  R%                  5       5        [        R&                  " U	5        UU 4S jn
T S   (       Ga»  T S   (       Gd°  [        R(                  " SS9u  nm[        R&                  " U5         U(       d)  [        R*                  " 5       [        R,                  SS -   nUR/                  ST-  5        [1        S[3        U5      5       H@  nX\   R                  S5      (       a  X\	   O%X\   R                  S5      (       d  M9  X\US-   2	   O   U4S jn[        R4                  " X]5      nUS:  a•  [        R
                  (       aa  [        R                  R                  T5      (       a=  [        TS5       nU H"  n[        R                  R7                  U5        M$     SSS5        [        R                  " [        S5      5      eU
" U5        [8        R:                  " T5        U(       a  U" U5      $ gU(       a  U" 5         T S   (       d  U
" [        R<                  " 5       5        T S   (       GaZ   [        R>                  " 5         SU;   a  [        RB                  " US   5        [        RD                  " 5         [        R                  R                  5         [        R                  R                  5         [        R                  " [        RF                  [        RH                  5      nUnU(       aH  [        R                  " U[        RH                  [        RJ                  -  [        R                  -  S5      n[        R"                  " U[        RL                  R%                  5       5        [        R"                  " U[        R                  R%                  5       5        [        R"                  " U[        R                  R%                  5       5        [        RL                  R%                  5       [        R                  R%                  5       [        R                  R%                  5       4nUU;  a  [        R&                  " U5        U(       a  UU;  a  [        R&                  " U5        SU;   a  [        RN                  " US   5        U(       a  U" 5       $ g! [        R&                  " U	5        f = f! , (       d  f       GN= f! [8        R:                  " T5        f = f! [@         a     GN¨f = f)zRun a command as a service.s   daemon_postexecs   unlink:é   Ns   unlinks   chdir:é   s   chdirs   nones'   invalid value for --daemon-postexec: %sc                ó’   >• TS   nU(       a:  SU -  nT(       a  [         R                  " X5        g [         R                  " X5        g g )Ns   pid_files   %d
)r   Ú
appendfileÚ	writefile)ÚpidÚfileÚpid_lineÚ	appendpidÚoptss      €€Ú2/usr/lib/python3/dist-packages/mercurial/server.pyÚwritepidÚrunservice.<locals>.writepidK   s9   ø€ Ø�KÑ ˆÞØ ‘}ˆHÞÜ—’ Õ/ä—’˜tÕ.ð ó    s   daemons   hg-service-)Úprefixr   s   --daemon-postexec=unlink:%ss   --cwd=s   --cwdé   c                 óL   >• [         R                  R                  T 5      (       + $ )N)ÚosÚpathÚexists)Úlockpaths   €r   ÚcondfnÚrunservice.<locals>.condfnf   s   ø€ ÜŸ7™7Ÿ>™>¨(Ó3Ô3Ð3r   r   Úrbs   child process failed to starti¶  )(Ú
startswithr	   ÚAbortr   r   Ú	iswindowsr!   r"   r#   r   ÚstdoutÚflushÚstderrÚopenÚO_WRONLYÚO_APPENDÚO_BINARYÚdup2ÚfilenoÚcloseÚmkstempÚhgcmdÚsysargvÚappendÚrangeÚlenÚrundetachedÚwriter   Ú	tryunlinkÚgetpidÚsetsidÚAttributeErrorÚchdirÚ
hidewindowÚdevnullÚO_RDWRÚO_CREATÚstdinÚunlink)r   ÚparentfnÚinitfnÚrunfnÚlogfileÚrunargsr   ÚpostexecargsÚinstÚfdr   ÚlockfdÚir%   r   ÚlogÚlineÚnullfdÚ	logfilefdÚstdior$   s   `     `             @r   Ú
runservicerW      s¬  ú€ ð €LàÐ×ØÐ+Ô,ˆDØ�‰˜z×*Ñ*Ø*.¨q¨r¨(�˜YÓ'Ø—‘ ×+Ñ+Ø)-¨a¨b¨�˜XÓ&Ø˜•Ü—k’kÜÐ@ÓAÀDÑHóð ñ -ô ××Ð˜dÐ#5×6Ð6Ø˜Ô$¬¯©¯©Ø˜Ñ#÷*
ò *
ô �O‰O×!Ñ!Ô#Ü�O‰O×!Ñ!Ô#ä—’Ø˜YÑ'¬¯©´r·{±{Ñ)BÄRÇ[Á[Ñ)PóˆBðÜ—’˜œHŸO™O×2Ñ2Ó4Ô5Ü—’˜œHŸO™O×2Ñ2Ó4Ô5ä—’˜”ö/ð ˆI‡€˜tÐ$6×7Ð7ä#×+Ò+°>ÑBÑˆ�Ü
�Š�Ôð	%ÞÜ"Ÿ.š.Ó*¬X×-=Ñ-=¸a¸bÐ-AÑA�Ø�N‰NÐ9¸HÑDÔEô ˜1œc '›lÖ+�Ø‘:×(Ñ(¨×3Ñ3Ø˜
ÙØ‘Z×*Ñ*¨8×4Ó4Ø A¨¡E 	Ð*Ùñ ,õ4ô ×&Ò& wÓ7ˆCØ�Q‹wô ×%×%¬"¯'©'¯.©.¸×*BÑ*BÜ˜h¨Ô-°Û$'˜DÜ$ŸO™O×1Ñ1°$Ö7ñ %(÷ .ô —k’k¤!Ð$DÓ"EÓFÐFÙ�SŒMä�NŠN˜8Ô$ÞÙ˜C“=Ð àæÙŒà�	�?Ù”—’Ó"Ô#àÐ×Ðð	Ü�IŠIŒKð �|Ó#Ü�HŠH�\ (Ñ+Ô,Ü×ÒÔÜ�‰×ÑÔÜ�‰×ÑÔä—’œŸ™¤R§Y¡YÓ/ˆØˆ	ÞÜŸšØœŸ™¤R§Z¡ZÑ/´"·+±+Ñ=¸uóˆIô 	�Š�œŸ™×-Ñ-Ó/Ô0Ü
�Š�	œ8Ÿ?™?×1Ñ1Ó3Ô4Ü
�Š�	œ8Ÿ?™?×1Ñ1Ó3Ô4ä�N‰N×!Ñ!Ó#Ü�O‰O×"Ñ"Ó$Ü�O‰O×"Ñ"Ó$ð
ˆð
 ˜ÓÜ�HŠH�VÔÞ�y¨Ó-Ü�HŠH�YÔð ˜Ó$Ü�IŠI�l 9Ñ-Ô.æÙ‹wˆð øôw —’˜•ú÷J .Ö-ûô �NŠN˜8Õ$ûô ó 	Úð	úsK   ÅA&Y È"BY8 Ê4A2Y8 Ì&)Y&Í/Y8 Ï#Z ÙY#Ù&
Y5Ù0Y8 Ù8ZÚ
Z!Ú Z!)s   chgunixs   pipes   unixc                ó¾   • US   n [         U   n[
        R                  " X5        U" XU5      $ ! [         a#    [        R                  " [	        S5      U-  5      ef = f)Nó	   cmdservers   unknown mode %s)Ú_cmdservicemapÚKeyErrorr	   r)   r   r   Úsetuplogging)ÚuiÚrepor   ÚmodeÚ	servicefns        r   Ú_createcmdservicera   ¯   sc   € Ø�Ñ€Dð8Ü" 4Ñ(ˆ	ô ×Ò˜rÔ(Ù�R˜tÓ$Ð$øô ó 8Ü�kŠkœ!Ð.Ó/°$Ñ6Ó7Ð7ð8ús	   ‡	/ ¯-Ac                ó°  • UR                  S5      (       a(  [        R                  " UR                  S5      5      US'   U 1nU(       a4  UR                  nUR	                  UR                  UR
                  /5        OU nUR                  S5      =(       d    UR                  S5      nU(       ah  UR                  S5      (       a  [        R                  " [        S5      5      eU R                  5       nUR                  US/S9  UR                  U5        ODUR                  S5      (       a,  U nU(       a"  [        5       n[        R                  " USU5        OU nS	nUR                  5        H9  nUR                  US5      n	U	S
;   a  M  U H  n
U
R!                  SX‰S5        M     M;     ["        R$                  " XAU5      n["        R&                  " XkU5      $ )Ns   ports   web_confs   webdir_confs   subreposs)   --web-conf cannot be used with --subreposs   web)Úsectionsr   sU   name templates style address port prefix ipv6 accesslog errorlog certificate encoding)Nr   s   serve)Úgetr   ÚgetportÚbaseuiÚupdater]   r	   r)   r   ÚcopyÚ
readconfigÚaddÚdictr   ÚaddwebdirpathÚsplitÚ	setconfigr
   Ú	createappÚhttpservice)r]   r^   r   Úalluisrf   ÚwebconfÚservuiÚoptlistÚoÚvalÚuÚapps               r   Ú_createhgwebservicery   ¹   s|  € à‡x�x�×ÑÜŸš¨¯©°Ó(9Ó:ˆˆW‰àˆT€FÞØ—‘ˆØ�‰�t—{‘{ D§G¡GÐ,Õ-àˆØ�h‰h�{Ó#×? t§x¡x°Ó'?€GÞØ�8‰8�K× Ñ Ü—+’+œaÐ LÓMÓNÐNð —‘“ˆØ×Ñ˜'¨V¨HÐÑ5Ø�
‰
�6ÕØ	�‰�+×	Ñ	Øˆö Ü“fˆGÜ×!Ò! $¨¨WÔ5øàˆð	4ð ð �]‰]Ž_ˆØ�h‰h�q˜#ÓˆØ�+ÓÙÛˆAØ�K‰K˜ ¨Ö1ó ñ	 ô �/Š/˜&¨Ó
0€CÜ×Ò˜V¨$Ó/Ð/r   c                óF   • US   (       a  [        XU5      $ [        XU5      $ )NrY   )ra   ry   )r]   r^   r   s      r   Úcreateservicer{   è   s$   € ØˆL×Ü  ¨4Ó0Ð0ä" 2¨TÓ2Ð2r   )NNNNNF)Ú
__future__r   r!   Úi18nr   Ú r   r   r   r	   r
   r   r   Úutilsr   r   rW   ÚchgunixserviceÚpipeserviceÚunixforkingservicerZ   ra   ry   r{   © r   r   Ú<module>r„      ss   ðõ #ã 	å ÷÷ ñ ÷ð ØØ
ØØØôGðV ×(Ñ(Ø×&Ñ&Ø×-Ñ-ñ€ò%ò,0ó^3r   