
    $iM                     b    S SK r S SKrS SKrS SKrS SKrS SKrS rS rS rS r	SSSS0 / 4S	 jr
g)
    Nc                 X    U  SU 3nUR                  SS5      R                  SS5      nU$ )Nz-osmocom-obs-:-_)replace)distro
image_typerets      /obs/lib/docker.pyget_image_namer      s4    HM*
.C
++c#

&
&s3
/CJ    c                     UR                  S5      (       a  [        XR                  SS5      5      $ U =S:X  a    Sn U $ S:X  a  Sn U $ U $ )N_manuals z	debian:10zdebian/eol:busterz	debian:13zdebian:trixie)endswithr   r   )r   r	   s     r   get_distro_fromr      sR    :&&f&8&8R&HII
 (F M $FM6Mr   c                    [        X5      n[        X5      n[        SU 35        / n[        [        R
                  SS 5      (       a  SS[        R
                  R                   3/n[        R                  " SSSSU  3SSU 3SS	[        R                  " 5        3/U-   S
US[        R                  R                   SU S3[        R                  R                   S3/-   5        g )Nzdocker: building image docker_feedz--build-argzFEED=dockerbuildzDISTRO=zDISTRO_FROM=zUID=z-tz-fz/data/z.Dockerfilez/data)r   r   printgetattrlibargsr   run_cmdosgetuidconfigpath_top)r   r	   
image_namedistro_frombuild_arg_feeds        r   build_imager#   $   s    3J!&5K	#J<
01 Nsxx--'51E1E0F)GHKK7'& 2,{m <$ryy{m 46 	
 z#**--.fZLLJJ''(.00 1r   c                  X   [         R                  R                  S5      n S[         R                  ;   a  [         R                  S   n [         R                  R	                  U 5      (       a  [         R                  R                  U 5      $ [        S5        [        R                  " S5        g )Nz~/.oscrcOSCRCz9ERROR: couldn't find ~/.oscrc. Put it there or set OSCRC.   )	r   path
expanduserenvironexistsrealpathr   sysexit)r
   s    r   	get_oscrcr.   <   sl    
''

Z
(C"**jj!	ww~~cww$$	
EFHHQKr   Fbuild_srcpkgTc           
      ^   S[         R                  ;   a  g[        R                  " S5      (       d!  [	        S5        [
        R                  " S5        U(       d  [        R                  R                  n[        X25      nSnU(       a
  [        5       n[        R                  " S5        UR                  S5      (       a  [        X2R                  SS5      5        [        X25        SS	S
SSSSS[        R                  R                    S3/	n	UR#                  5        H  u  pU	SU
 SU 3/-  n	M     U(       a
  U	SU S3/-  n	X-  n	XSU  3/-  n	U(       a  U	[
        R$                  SS -  n	[	        SU  S35        [&        R(                  " U	5      n[
        R                  " UR*                  5        g)a  
:param script_path: what to run inside docker, relative to scripts/obs/
:param add_oscrc: put user's oscrc in docker (contains obs credentials!)
:param image_type: which Dockerfile to use (data/{image_type}.Dockerfile)
:param distro: which Linux distribution to use, e.g. "debian:11"
:param pass_argv: pass arguments from sys.argv to the script
:param env: dict of environment variables
:param docker_args: extra arguments to pass to docker
INSIDE_DOCKERNr   zERROR: docker is not installedr&   Tr   r   runz--rmz-ezINSIDE_DOCKER=1zPYTHONUNBUFFERED=1z-vz:/obs=z:/home/user/.oscrcz/obs/zdocker: running: z inside docker)r   r)   shutilwhichr   r,   r-   r   r   docker_distro_defaultr   r.   set_cmds_verboser   r#   r   r   itemsargv
subprocessr2   
returncode)script_path	add_oscrcr	   r   	pass_argvenvdocker_argsr    oscrccmdenv_keyenv_valr
   s                r   run_in_docker_and_exitrE   H   s    "**$<<!!./113JE
  :&&F..z"=>#U"%CJJ''(.	0C  IIK	7),-- ( 1233C%}-..Csxx|	k].
9:
..
CHHS^^r   )r   r4   r:   r,   r   
lib.configr   r   r#   r.   rE    r   r   <module>rH      sC    
   
 
 &10	 38&4T%)rr:r   