Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e134d098 authored by Jooyung Han's avatar Jooyung Han
Browse files

Add 'merge' command to conv_linker_config

'merge' command can merge multiple configurations.
It just delegates protobuf's msg.MergeFrom(other_msg).

  usage: conv_linker_config merge -o out.pb -i a.pb -i b.pb ...

out.pb will have all keys from multiple inputs.

Bug: 181093750
Test: m
Test: MicrodroidTestCase
Change-Id: Ibf715aa0bcc1e5c82c85a9af8fe7dca8d6ab68ad
parent a0436a39
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -78,6 +78,14 @@ def Append(args):
  with open(args.output, 'wb') as f:
    f.write(pb.SerializeToString())

def Merge(args):
  pb = linker_config_pb2.LinkerConfig()
  for other in args.input:
    with open(other, 'rb') as f:
      pb.MergeFromString(f.read())

  with open(args.out, 'wb') as f:
    f.write(pb.SerializeToString())

def GetArgParser():
  parser = argparse.ArgumentParser()
@@ -161,6 +169,22 @@ def GetArgParser():
      help='Values of the libraries to append. If there are more than one it should be separated by empty space')
  append.set_defaults(func=Append)

  append = subparsers.add_parser(
      'merge', help='Merge configurations')
  append.add_argument(
      '-o',
      '--out',
      required=True,
      type=str,
      help='Ouptut linker configuration file to write in protobuf.')
  append.add_argument(
      '-i',
      '--input',
      nargs='+',
      type=str,
      help='Linker configuration files to merge.')
  append.set_defaults(func=Merge)

  return parser