blob: 8ec2fbb1649ae750fbae2187decef793bf554259 [file] [log] [blame]
# 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('languages',
metavar='LANG',
nargs='+',
help='Supported protobuf languages')
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 supported language.')
_LOG.error('Depend on one of the following targets instead:')
_LOG.error('')
for lang in args.languages:
_LOG.error(' //%s:%s_%s', relative_dir, args.target, lang)
_LOG.error('')
return 1
if __name__ == '__main__':
pw_cli.log.install()
sys.exit(main())