
                             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  G d	 d
ej                        Zy)zHA command that generates and/or updates single resource config commands.    )absolute_import)division)unicode_literals)arg_parsers)base)generate_config_command)resource_name_translatorc                   &    e Zd ZdZed        Zd Zy)GenerateCommandzBGenerate declarative config commands with surface specs and tests.c                     | j                  dddd       | j                  ddd	       | j                  d
dt        j                         d       | j                  ddt        j                         d       y )Nz--output-root	DIRECTORYTzMRoot of the directory within which to generate config config export commands.)metavarrequiredhelpz--enable-overwrites
store_truezUWhen enabled, allows overwriting of existing commands, surface specs, and test files.)actionr   z--collections
COLLECTIONz6List of apitools collections to generate commands for.)r   typer   z--release-tracksTRACKzEList of release tracks to generate commands for. E.g. `ALPHA,BETA,GA`)add_argumentr   ArgList)parsers    ,lib/surface/meta/generate_config_commands.pyArgszGenerateCommand.Args   s    
(	  * '  )
   "F	  I
   "T	      c                 N   t        j                         }t        |d      xs dg}t        |d      }|D ]o  }d}|j                  }d|v r!|j                  r|r|j
                  |v rd}nd}|s9t        j                  |j
                  |j                  |||j                         q y )Nrelease_tracksALPHAcollectionsFenable_single_resource_autogenT)
r	   ResourceNameTranslatorgetattrresource_datar    collection_namer   WriteConfigYamloutput_rootenable_overwrites)selfargs
translatorr   specified_collections
collectionrender_filesr#   s           r   RunzGenerateCommand.Run7   s    )@@BJT#34A	N#D-8 
l ..m
*m
;

6
6 ''+@@L,	//
0J0J040@0@0=0>040F0F		H !r   N)__name__
__module____qualname____doc__staticmethodr   r.    r   r   r   r      s    J 0Hr   r   N)r2   
__future__r   r   r   googlecloudsdk.callioper   r   googlecloudsdk.command_lib.metar   8googlecloudsdk.command_lib.util.resource_map.declarativer	   Commandr   r4   r   r   <module>r:      s2    O &  ' / ( C ]0Hdll 0Hr   