
    ?                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlZdZ G d de      Zy)z6Utilities for generating cloud-based dev loop configs.    )absolute_import)division)print_function)unicode_literals)encoding)builders)yaml_helper)cloud)yamlNz
apiVersion: skaffold/v3alpha1
kind: Config
build:
  artifacts: []
  local:
    push: true
manifests:
  rawYaml: []
deploy:
  cloudrun: {}
c                   "    e Zd ZdZd Zd Zd Zy)CloudRuntimeFilesz:Generates the development environment files for a project.c                     || _         y N)	_settings)selfsettingss     8lib/googlecloudsdk/command_lib/code/cloud/cloud_files.py__init__zCloudRuntimeFiles.__init__.   s	    DN    c                     t        j                  t        j                  t	        j
                  | j                                    S r   )r   dumpr   MessageToDictr
   GenerateServicer   )r   s    r   KubernetesConfigz"CloudRuntimeFiles.KubernetesConfig1   s2    99u44T^^DEG Gr   c                    t        j                  t              }t        j                  |dt
              }|j                  |       d| j                  j                  i}t        | j                  j                  t        j                        r-d| j                  j                  j                  i|d<   ddi|d<   nb| j                  j                  j                  | j                  j                        }d	t        j                   |j#                  d
            i|d<   t        j                  |dt
              }|j                  |       | j                  j$                  |d   d   d<   | j                  j&                  |d   d   d<   | j                  j(                  r5d| j                  j*                  d| j                  j(                  d}|g|d<   t        j,                  |      S )z*Generate the Skaffold yaml for the deploy.)	manifestsrawYaml)constructorimagebuilder
buildpacksautoFsync
dockerfileunicode_escapedocker)build	artifactsdeploycloudrun	projectidregionservicei  )resourceTyperesourceNameport	localPortportForward)r   load_SKAFFOLD_TEMPLATEr	   GetOrCreatelistappendr   r   
isinstancer    r   BuildpackBuilderDockerfileRelPathcontextsixensure_textencodeprojectr,   
local_portservice_namer   )r   service_file_pathskaffold_yamlr   artifactdockerfile_rel_pathr(   port_forward_configs           r   SkaffoldConfigz CloudRuntimeFiles.SkaffoldConfig5   s   II01M''/TCI&'--.H$..(((*C*CD
T^^++33 h| !%hv !NN22DD
..
 
 " oo1889IJKhx
 ''-4AIX7;~~7M7MM(J'448NN4I4IM(J'1~~  #..55~~00	 ':%:mM"99]##r   N)__name__
__module____qualname____doc__r   r   rG    r   r   r   r   +   s    BG%$r   r   )rK   
__future__r   r   r   r   apitools.base.pyr   googlecloudsdk.command_lib.coder   r	   %googlecloudsdk.command_lib.code.cloudr
   googlecloudsdk.corer   r<   r4   objectr   rL   r   r   <module>rS      s<    = &  % ' % 4 7 7 $ 
 /$ /$r   