old_contents: # Copyright 2019 The Pigweed Authors
  #
  # Licensed under the Apache License, Version 2.0 (the "License"); you may not
  # use this file except in compliance with the License. You may obtain a copy of
  # the License at
  #
  #     https://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  # License for the specific language governing permissions and limitations under
  # the License.
  """Prints an error for an incorrect usage of a pw_proto_library template."""
  
  import argparse
  import logging
  import sys
  
  from typing import Optional
  
  from pw_cli.color import colors
  import pw_cli.log
  
  _LOG = logging.getLogger(__name__)
  
  
  def argument_parser(
      parser: Optional[argparse.ArgumentParser] = None
  ) -> argparse.ArgumentParser:
      """Registers the script's arguments on an argument parser."""
  
      if parser is None:
          parser = argparse.ArgumentParser(description=__doc__)
  
      parser.add_argument('--dir', required=True, help='Target directory')
      parser.add_argument('--root', required=True, help='GN root')
      parser.add_argument('--target', required=True, help='Build target')
      parser.add_argument('generators',
                          metavar='GEN',
                          nargs='+',
                          help='Supported protobuf generators')
  
      return parser
  
  
  def main() -> int:
      """Prints an error message."""
  
      args = argument_parser().parse_args()
      relative_dir = args.dir[len(args.root):].rstrip('/')
  
      _LOG.error('')
      _LOG.error('The target %s is not a compiled protobuf library.',
                 colors().bold_white(args.target))
      _LOG.error('')
      _LOG.error('A different target is generated for each active generator.')
      _LOG.error('Depend on one of the following targets instead:')
      _LOG.error('')
      for gen in args.generators:
          _LOG.error('  //%s:%s.%s', relative_dir, args.target, gen)
      _LOG.error('')
  
      return 1
  
  
  if __name__ == '__main__':
      pw_cli.log.install()
      sys.exit(main())
  
new_contents: # Copyright 2019 The Pigweed Authors
  #
  # Licensed under the Apache License, Version 2.0 (the "License"); you may not
  # use this file except in compliance with the License. You may obtain a copy of
  # the License at
  #
  #     https://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  # License for the specific language governing permissions and limitations under
  # the License.
  """Prints an error for an incorrect usage of a pw_proto_library template."""
  
  import argparse
  import logging
  import sys
  
  from typing import Optional
  
  _LOG = logging.getLogger(__name__)
  
  
  def argument_parser(
      parser: Optional[argparse.ArgumentParser] = None
  ) -> argparse.ArgumentParser:
      """Registers the script's arguments on an argument parser."""
  
      if parser is None:
          parser = argparse.ArgumentParser(description=__doc__)
  
      parser.add_argument('--dir', required=True, help='Target directory')
      parser.add_argument('--root', required=True, help='GN root')
      parser.add_argument('--target', required=True, help='Build target')
      parser.add_argument('generators',
                          metavar='GEN',
                          nargs='+',
                          help='Supported protobuf generators')
  
      return parser
  
  
  def main() -> int:
      """Prints an error message."""
  
      args = argument_parser().parse_args()
      relative_dir = args.dir[len(args.root):].rstrip('/')
  
      _LOG.error('')
      _LOG.error('The target %s is not a compiled protobuf library.',
                 args.target)
      _LOG.error('')
      _LOG.error('A different target is generated for each active generator.')
      _LOG.error('Depend on one of the following targets instead:')
      _LOG.error('')
      for gen in args.generators:
          _LOG.error('  //%s:%s.%s', relative_dir, args.target, gen)
      _LOG.error('')
  
      return 1
  
  
  if __name__ == '__main__':
      try:
          # If pw_cli is available, use it to initialize logs.
          from pw_cli import log
  
          log.install(logging.INFO)
      except ImportError:
          # If pw_cli isn't available, display log messages like a simple print.
          logging.basicConfig(format='%(message)s', level=logging.INFO)
  
      sys.exit(main())
  
subject: Make pw_cli import optional