conv_linker_config proto works with empty input

PRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS lists json files for vendor
linker config. It's annoying to handle the case of empty list.

`proto` subcommand now works for empty input. This is useful to generate
the empty linker config.

Bug: 244531518
Test: conv_linker_config proto --source --output output.pb
Change-Id: Iec6de67a979814a818730c393d9a4a7ca5d2eebe
This commit is contained in:
Jooyung Han
2023-03-04 08:28:40 +09:00
parent aa3408a506
commit b531beecd5

View File

@@ -28,14 +28,15 @@ from google.protobuf.text_format import MessageToString
def Proto(args):
pb = linker_config_pb2.LinkerConfig()
for input in args.source.split(':'):
json_content = ''
with open(input) as f:
for line in f:
if not line.lstrip().startswith('//'):
json_content += line
obj = json.loads(json_content, object_pairs_hook=collections.OrderedDict)
ParseDict(obj, pb)
if args.source:
for input in args.source.split(':'):
json_content = ''
with open(input) as f:
for line in f:
if not line.lstrip().startswith('//'):
json_content += line
obj = json.loads(json_content, object_pairs_hook=collections.OrderedDict)
ParseDict(obj, pb)
with open(args.output, 'wb') as f:
f.write(pb.SerializeToString())
@@ -104,7 +105,7 @@ def GetArgParser():
parser_proto.add_argument(
'-s',
'--source',
required=True,
nargs='?',
type=str,
help='Colon-separated list of linker configuration files in JSON.')
parser_proto.add_argument(