
    kiM                     b    d dl Z d dlZd dlZd dlZd dlZd dlZd Zd Zd Zd Z	ddddi g fd	Z
dS )
    Nc                 h    |  d| }|                     dd                               dd          }|S )Nz-osmocom-obs-:-_)replace)distro
image_typerets      X/home/osmocom-build/jenkins/workspace/gerrit-binpkgs@2/osmo-ci/scripts/obs/lib/docker.pyget_image_namer      s=    
.
.*
.
.C
++c#


&
&s3
/
/CJ    c                     |                     d          r$t          | |                    dd                    S | xdk    r d} ndk    rd} | S )N_manuals z	debian:10zdebian/eol:busterz	debian:13zdebian:trixie)endswithr   r   )r   r	   s     r   get_distro_fromr      sd    :&& Jfj&8&8R&H&HIII
 [[[[(F( [[$FMr   c                    t          | |          }t          | |          }t          d|            g }t          t          j        dd           rddt          j        j         g}t	          j        dddd|  dd| dd	t          j	                     g|z   d
|dt          j
        j         d| dt          j
        j         dgz              d S )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   
33J!&*55K	
0J
0
0111 Nsx-- I')G1E)G)GHK7 2& 2 2 <{ < < 4ry{{ 4 46 	
 z#*-LLZLLLJ'...00 1 1 1 1 1r   c                  F   t           j                            d          } dt           j        v rt           j        d         } t           j                            |           rt           j                            |           S t          d           t          j        d           d S )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.   <   s|    
'

Z
(
(C"*j!	w~~c %w$$$	
EFFFHQKKKKKr   Fbuild_srcpkgTc           
      &   dt           j        v rdS t          j        d          s#t	          d           t          j        d           |st          j        j	        }t          ||          }d}|rt                      }t          j        d           |                    d          r$t          ||                    dd                     t          ||           dd	d
dddddt          j        j         dg	}	|                                D ]\  }
}|	d|
 d| gz  }	|r
|	d| dgz  }	|	|z  }	|	|d|  gz  }	|r|	t
          j        dd         z  }	t	          d|  d           t'          j        |	          }t          j        |j                   dS )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    "*$$<!! ./// 21
33JE 
  :&& ?FJ..z"==>>>
###U"%CJ'...	0C  IIKK . .,,7,,-- 422233;CJ---..C sx|	
9k
9
9
9:::
.

CHS^r   )r   r4   r:   r,   r   
lib.configr   r   r#   r.   rE    r   r   <module>rH      s    
			      



 



        &1 1 10	 	 	 38&4T%)rr: : : : : :r   