
    e                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  Sr
S rSS jrS	 rS
 rSS jrS rSS jrSS jrg)    N)utils)IS_WINDOWS_PLATFORM)DEFAULT_UNIX_SOCKET)find_config_filez	meta.jsonc                      Sn [        5       nU(       a=   [        U5       n[        R                  " U5      R	                  SS5      n S S S 5        U $ U $ ! , (       d  f       U $ = f! [
         a     gf = f)NdefaultcurrentContext)r   openjsonloadget	Exception)namedocker_cfg_pathfs      (lib/third_party/docker/context/config.pyget_current_context_namer      so    D&(O	o&!yy|''(8)D ' K4K	 '& K  		s.   A% 'AA% 
A"A% "A% %
A21A2c                    U S:X  a  S n [        5       n0 nU(       a+   [        U5       n[        R                  " U5      nS S S 5        UR                  SS 5      nU(       a  U (       d  US	 OU (       a  XS'   Og  [        US5       n[        R                  " X#SS9  S S S 5        g ! , (       d  f       Nk= f! [         a  nUs S nA$ S nAff = f! , (       d  f       g = f! [         a  nUs S nA$ S nAff = f)Nr   r	   w   )indent)r   r
   r   r   r   r   dump)r   r   configr   ecurrent_contexts         r   #write_context_name_to_docker_configr      s    y&(OF	o&!1 ' jj!148Ot#$	#' /3'1IIf* (' '& 	H	 (' su   B5 B$B5 9C CC $
B2.B5 2B5 5
C?C CC
CC C 
C5)C0*C50C5c                 h    [         R                  " U R                  S5      5      R                  5       $ )Nzutf-8)hashlibsha256encode	hexdigestr   s    r   get_context_idr#   2   s#    >>$++g./99;;    c                      [         R                  R                  [         R                  R                  [	        5       =(       d    S5      S5      $ )N contexts)ospathjoindirnamer    r$   r   get_context_dirr-   6   s-    77<<(8(:(@bA:NNr$   c                     [         R                  R                  [        5       S5      nU (       a)  [         R                  R                  U[	        U 5      5      $ U$ )Nmeta)r(   r)   r*   r-   r#   )r   meta_dirs     r   get_meta_dirr1   :   s;    ww||O-v6Hww||HnT&:;;Or$   c                 \    [         R                  R                  [        U 5      [        5      $ N)r(   r)   r*   r1   METAFILEr"   s    r   get_meta_filer5   A   s    77<<T*H55r$   c                     [        5       nU (       a+  [        R                  R                  US[	        U 5      U5      $ [        R                  R                  US5      $ )Ntls)r-   r(   r)   r*   r#   )r   endpointcontext_dirs      r   get_tls_dirr:   E   s@    !#Kww||Kt0DhOO77<<U++r$   c                 t    [         R                  " U [        U5      nU[        :X  a  UR	                  S5      $ U$ )Nzhttp+)r   
parse_hostr   r   strip)r)   r7   hosts      r   get_context_hostr?   L   s4    D"5s;D""zz'""Kr$   r3   )Nr&   )NF)r(   r   r   dockerr   docker.constantsr   r   docker.utils.configr   r4   r   r   r#   r-   r1   r5   r:   r?   r,   r$   r   <module>rC      sH    	    0 0 0	2<O6,r$   