o
    !                     @   s  d Z ddlmZ ddlmZ ddlmZ ddlZe ZddlZddlZddl	Z	ddl
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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"e #  e$ j%sej&j'j()d dd Z*dd Z+dd Z,d ddZ-ej.d!ddZ/e0dkrze/  W dS  e1y   e 2  Y dS w dS )"zgcloud command line tool.    )absolute_import)division)unicode_literalsN)base)cli)crash_handling)yaml_command_translator)config)log)metrics)
properties)creds_context_managers)devshell)survey_check)local_state)keyboard_interrupt)	platformsTc                 K   sD   ddl m} z
|jj| d W d S  ty!   tjddd Y d S w )Nr   )update_manager)command_pathzFailed to perform update check.Texc_info)googlecloudsdk.core.updaterr   UpdateManagerPerformUpdateCheck	Exceptionr
   debug)r   unused_kwargsr    r   7/tmp/google-cloud-sdk/lib/googlecloudsdk/gcloud_main.pyUpdateCheck;   s   r   c                 C   sB   t jjj r	dS t rdS dg}|D ]
}| |r dS qdS )z+Decides if survey prompt should be checked.Fzgcloud.components.post-processT)r   VALUESsurveydisable_promptsGetBool
c_devshellIsDevshellEnvironment
startswith)r   exempt_commandsexempt_commandr   r   r   _ShouldCheckSurveyPromptE   s   
r)   c                 K   sB   t | sdS z	t   W dS  ty    tjddd Y dS w )z!Checks for in-tool survey prompt.NzFailed to check survey prompt.Tr   )r)   r   SurveyPrompterPromptr   r
   r   )r   r   r   r   r   SurveyPromptCheckY   s   r,   c           	   
      sH   fdd}dd }t jt jtj}tjdt j|dd|||p&t	 d}|j
tjjt j|dd	d	d
 |j
tjjt j|dddd
 |j
tjjt j|dddd
 | D ]\}}|j||dd
 q[|dt j|ddd |dt j|dddd |dt j|ddd d}|jt|d |t |   S )a{  Generates the gcloud CLI from 'surface' folder with extra surfaces.

  Args:
    surfaces: list(tuple(dot_path, dir_path)), extra commands or subsurfaces to
      add, where dot_path is calliope command path and dir_path path to command
      group or command.
    translator: yaml_command_translator.Translator, an alternative translator.

  Returns:
    calliope cli object.
  c                      s     dg d S )Nversion)Executer   generated_clir   r   VersionFuncs      zCreateCLI.<locals>.VersionFuncc                   S   s   t jdd d S )NF)is_crash)r   ReportErrorr   r   r   r   HandleKnownErrorFuncv   r2   z'CreateCLI.<locals>.HandleKnownErrorFuncgcloudsurfaceT)namecommand_root_directoryallow_non_existing_modulesversion_funcknown_error_handlerr   alpha)	componentbetapreviewNzcontainer.hub	containerfleetzbigtable.tablesbigtable	instancestableszcompute.migration	migrationvmsz&gcloud\.components\..*|gcloud\.version)exclude_commands)ospathdirnamer7   __file__r   	CLILoaderjoinr   
TranslatorAddReleaseTrackr   ReleaseTrackALPHABETAPREVIEW	AddModuleRegisterPostRunHookr   r,   Generate)	surfaces
translatorr1   r5   pkg_rootloaderdot_pathdir_pathrH   r   r/   r   	CreateCLIf   sZ   	
r^   c                 C   s   t tj t  std t	t
 tdtjd | d u r(tg } t|H z|   tj  W n+ tyd } z|jtjkrYttjtj}t|tj  n W Y d }~nd }~ww W d    d S W d    d S 1 sxw   Y  d S )N   r6   core)atexitregisterr   Shutdownr   PythonVersionIsCompatiblesysexitStarted
START_TIME
Executionsr   InstallationStateVersionForInstalledComponentr^   r   CredentialProvidersManagerr.   stdoutflushIOErrorerrnoEPIPErI   opendevnullO_WRONLYdup2fileno)
gcloud_clicredential_providerserrrt   r   r   r   main   s4   


'"r{   __main__)N)NN)3__doc__
__future__r   r   r   timeri   ra   rq   rI   rf   googlecloudsdk.callioper   r   googlecloudsdk.command_libr   $googlecloudsdk.command_lib.util.apisr   googlecloudsdk.corer	   r
   r   r   googlecloudsdk.core.credentialsr   r   r$   googlecloudsdk.core.surveyr   r   r   googlecloudsdk.core.utilr   r   r7   InstallHandlerPathssdk_rootr    component_managerdisable_update_checkSetr   r)   r,   r^   CrashManagerr{   __name__KeyboardInterruptHandleInterruptr   r   r   r   <module>   sR   


J7