
                         v    d Z ddlmZ ddlmZ ddlmZ ddlmZ dZ G d dej                        Z	dd	Z
dd
Zy)zWrapper for runcompose binary.    )absolute_import)division)unicode_literals)binary_operationszCould not locate Cloud Run executable run-compsose on the system PATH. Please ensure gcloud run up component is properly installed. See https://cloud.google.com/sdk/docs/components for more details.c                   :     e Zd ZdZ fdZ	 	 	 	 	 	 	 	 ddZ xZS )RunComposeWrapperz2Binary operation wrapper for run-compose commands.c           
      V    t        t        | 
  dddt        idt        t
        dd| y )Nzrun-composeMISSING_EXECT)binarycustom_errorsinstall_if_missingstd_err_funcstd_out_funccapture_output )superr   __init__MISSING_BINARYStreamErrHandlerStreamOutHandler)selfkwargs	__class__s     (lib/googlecloudsdk/command_lib/run/up.pyr   zRunComposeWrapper.__init__%   s9    	
T+ %~6%%     c	                 L   |dk(  r*t         j                  | _        t         j                  | _        ~	g }
|r|
|gz  }
|r|
|gz  }
|dk(  r-|
d|gz  }
|r|
j                  d       |r|
j                  d       |dk(  r|
d|gz  }
|dk(  r|
d|gz  }
|
d	t        |      gz  }
|
d|gz  }
|
S )
Nupz--repoz--debugz	--dry-runresourcez--region	translatez--resources-configz--project-number)r   DefaultStreamOutHandlerstd_out_handlerDefaultStreamErrHandlerstd_err_handlerappendstr)r   commandcompose_filerepodebugdry_runresources_configproject_numberregionr   	exec_argss              r   _ParseArgsForCommandz&RunComposeWrapper._ParseArgsForCommand2   s     $.FFd.FFdIG9iL>!i$Hd##i	#	%*J''i+(*:;;i&N(;<<iJ''ir   )NNNFFNNN)__name__
__module____qualname____doc__r   r/   __classcell__)r   s   @r   r   r   "   s*    :	 $r   r   c                       fd}|S )z0Processing for streaming stdout from subprocess.c                     | r| j                         } r2j                  sg _        | rj                  j                  |        y y y N)stripstdoutr$   liner   result_holders    r   HandleStdOutz&StreamOutHandler.<locals>.HandleStdOut\   sF    ZZ\d!!!	##D) 
 r   r   )r<   r   r=   s   `` r   r   r   Y   s    * 
r   c                       fd}|S )z;Customized processing for streaming stderr from subprocess.c                     | r| j                          r/j                  sg _        j                  j                  |        y y r7   )rstripstderrr$   r:   s    r   HandleStdErrz&StreamErrHandler.<locals>.HandleStdErrk   s<    
kkm!!!!!$' r   r   )r<   r   rB   s   `` r   r   r   h   s    ( 
r   N)F)r3   
__future__r   r   r   &googlecloudsdk.command_lib.util.anthosr   r   StreamingBinaryBackedOperationr   r   r   r   r   r   <module>rF      s>    % &  ' D 4)HH 4nr   