tools/cr/main.py
def Main():
  """Chromium cr tool main function.

  This is the main entry point of the cr tool, it finds and loads all the
  plugins, creates the context and then activates and runs the specified
  command.
  """

  # Add the users plugin dir to the cr.auto.user package scan
  user_path = os.path.expanduser(os.path.join('~', '.config', 'cr'))
  cr.auto.user.__path__.append(user_path)

  cr.loader.Scan()

  # Build the command context
  with cr.base.context.Create(
      description='The chrome dev build tool.',
      epilog='Contact ' + _CONTACT + ' if you have issues with this tool.',
      ) as context:

    # Try to detect the current client information
    cr.base.client.DetectClient()

    # Install the sub-commands
    for command in cr.Command.Plugins():
      cr.context.AddSubParser(command)

    # test for the special autocomplete command
    if cr.context.autocompleting:
      # After plugins are loaded so pylint: disable=g-import-not-at-top
      cr.autocomplete.Complete()
      return
    # Speculative argument processing to add config specific args
    cr.context.ParseArgs(True)
    cr.plugin.Activate()
    # At this point we should know what command we are going to use
    command = cr.Command.GetActivePlugin()
    # Do some early processing, in case it changes the build dir
    if command:
      command.EarlyArgProcessing()
    # Update the activated set again, in case the early processing changed it
    cr.plugin.Activate()
    # Load the build specific configuration
    found_build_dir = cr.base.client.LoadConfig()
    # Final processing or arguments
    cr.plugin.Activate()
    cr.context.ParseArgs()
    # If we did not get a command before, it might have been fixed.
    if command is None:
      command = cr.Command.GetActivePlugin()
    # If the verbosity level is 3 or greater, then print the environment here
    if cr.context.verbose >= 3:
      cr.context.DumpValues(cr.context.verbose > 3)
    if command is None:
      print(cr.context.Substitute('No command specified.'))
      exit(1)
    if command.requires_build_dir:
      if not found_build_dir:
        if not cr.context.Find('CR_OUT_FULL'):
          print(cr.context.Substitute(
              'No build directory specified. Please use cr init to make one.'))
        else:
          print(cr.context.Substitute(
              'Build {CR_BUILD_DIR} not a valid build directory'))
        exit(1)
      if cr.context.Find('CR_VERSION') != cr.base.client.VERSION:
        print(cr.context.Substitute(
            'Build {CR_BUILD_DIR} is for the wrong version of cr'))
        print('Please run cr init to reset it')
        exit(1)
      cr.Platform.Prepare()
    if cr.context.verbose >= 1:
      print(cr.context.Substitute('Running cr ' + command.name +
                                  ' for {CR_BUILD_DIR}'))
    # Invoke the given command
    command.Run()
Chromium cr tool main function.

  This is the main entry point of the cr tool, it finds and loads all the
  plugins, creates the context and then activates and runs the specified
  command.
  
Chromium cr tool main function.
This is the main entry point of the cr tool, it finds and loads all the
plugins, creates the context and then activates and runs the specified
command.
Chromium cr tool main function . This is the main entry point of the cr tool it finds and loads all the plugins creates the context and then activates and runs the specified command .
def Main():
  user_path = os.path.expanduser(os.path.join('~', '.config', 'cr'))
  cr.auto.user.__path__.append(user_path)
  cr.loader.Scan()
  with cr.base.context.Create(
      description='The chrome dev build tool.',
      epilog='Contact ' + _CONTACT + ' if you have issues with this tool.',
      ) as context:
    cr.base.client.DetectClient()
    for command in cr.Command.Plugins():
      cr.context.AddSubParser(command)
    if cr.context.autocompleting:
      cr.autocomplete.Complete()
      return
    cr.context.ParseArgs(True)
    cr.plugin.Activate()
    command = cr.Command.GetActivePlugin()
    if command:
      command.EarlyArgProcessing()
    cr.plugin.Activate()
    found_build_dir = cr.base.client.LoadConfig()
    cr.plugin.Activate()
    cr.context.ParseArgs()
    if command is None:
      command = cr.Command.GetActivePlugin()
    if cr.context.verbose >= 3:
      cr.context.DumpValues(cr.context.verbose > 3)
    if command is None:
      print(cr.context.Substitute('No command specified.'))
      exit(1)
    if command.requires_build_dir:
      if not found_build_dir:
        if not cr.context.Find('CR_OUT_FULL'):
          print(cr.context.Substitute(
              'No build directory specified. Please use cr init to make one.'))
        else:
          print(cr.context.Substitute(
              'Build {CR_BUILD_DIR} not a valid build directory'))
        exit(1)
      if cr.context.Find('CR_VERSION') != cr.base.client.VERSION:
        print(cr.context.Substitute(
            'Build {CR_BUILD_DIR} is for the wrong version of cr'))
        print('Please run cr init to reset it')
        exit(1)
      cr.Platform.Prepare()
    if cr.context.verbose >= 1:
      print(cr.context.Substitute('Running cr ' + command.name +
                                  ' for {CR_BUILD_DIR}'))
    command.Run()
def Main ( ) : user_path = os . path . expanduser ( os . path . join ( '~' , '.config' , 'cr' ) ) cr . auto . user . __path__ . append ( user_path ) cr . loader . Scan ( ) with cr . base . context . Create ( description = 'The chrome dev build tool.' , epilog = 'Contact ' + _CONTACT + ' if you have issues with this tool.' , ) as context : cr . base . client . DetectClient ( ) for command in cr . Command . Plugins ( ) : cr . context . AddSubParser ( command ) if cr . context . autocompleting : cr . autocomplete . Complete ( ) return cr . context . ParseArgs ( True ) cr . plugin . Activate ( ) command = cr . Command . GetActivePlugin ( ) if command : command . EarlyArgProcessing ( ) cr . plugin . Activate ( ) found_build_dir = cr . base . client . LoadConfig ( ) cr . plugin . Activate ( ) cr . context . ParseArgs ( ) if command is None : command = cr . Command . GetActivePlugin ( ) if cr . context . verbose >= 3 : cr . context . DumpValues ( cr . context . verbose > 3 ) if command is None : print ( cr . context . Substitute ( 'No command specified.' ) ) exit ( 1 ) if command . requires_build_dir : if not found_build_dir : if not cr . context . Find ( 'CR_OUT_FULL' ) : print ( cr . context . Substitute ( 'No build directory specified. Please use cr init to make one.' ) ) else : print ( cr . context . Substitute ( 'Build {CR_BUILD_DIR} not a valid build directory' ) ) exit ( 1 ) if cr . context . Find ( 'CR_VERSION' ) != cr . base . client . VERSION : print ( cr . context . Substitute ( 'Build {CR_BUILD_DIR} is for the wrong version of cr' ) ) print ( 'Please run cr init to reset it' ) exit ( 1 ) cr . Platform . Prepare ( ) if cr . context . verbose >= 1 : print ( cr . context . Substitute ( 'Running cr ' + command . name + ' for {CR_BUILD_DIR}' ) ) command . Run ( )
Chromium cr tool main function.
Chromium cr tool main function .
"""Chromium cr tool main function.

  This is the main entry point of the cr tool, it finds and loads all the
  plugins, creates the context and then activates and runs the specified
  command.
  """ # Add the users plugin dir to the cr.auto.user package scan # Build the command context # Try to detect the current client information # Install the sub-commands # test for the special autocomplete command # After plugins are loaded so pylint: disable=g-import-not-at-top # Speculative argument processing to add config specific args # At this point we should know what command we are going to use # Do some early processing, in case it changes the build dir # Update the activated set again, in case the early processing changed it # Load the build specific configuration # Final processing or arguments # If we did not get a command before, it might have been fixed. # If the verbosity level is 3 or greater, then print the environment here # Invoke the given command