From 155e061f8bec57f572e84b4e8058569525ef3541 Mon Sep 17 00:00:00 2001 From: JP Cottin Date: Thu, 4 Nov 2021 14:28:40 +0100 Subject: [PATCH] emu-docker create: add --name flag to override image name Adds a --name flag to `emu-docker create` that overrides the auto-generated image name (which is otherwise built from --). Useful for deployments with their own naming conventions, e.g. matching an internal registry's path layout. When unset, behavior is unchanged. Original implementation by Greger Stolt Nilsen from #359; cherry-picked onto current master here. --- emu/containers/emulator_container.py | 6 +++++- emu/emu_docker.py | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/emu/containers/emulator_container.py b/emu/containers/emulator_container.py index 890529e9..7227e235 100644 --- a/emu/containers/emulator_container.py +++ b/emu/containers/emulator_container.py @@ -31,11 +31,12 @@ class EmulatorContainer(DockerContainer): NO_METRICS_MESSAGE = "No metrics are collected when running this container." def __init__( - self, emulator, system_image_container, repository=None, metrics=False, extra="" + self, emulator, system_image_container, repository=None, metrics=False, extra="", name=None ): self.emulator_zip = AndroidReleaseZip(emulator) self.system_image_container = system_image_container self.metrics = metrics + self.name = name if type(extra) is list: extra = " ".join([f'"{s}"' for s in extra]) @@ -100,6 +101,9 @@ def write(self, dest): self.emulator_zip.extract(os.path.join(dest, "emu")) def image_name(self): + if self.name: + return self.name + name = "{}-{}-{}".format( self.props["ro.build.version.sdk"], self.props["qemu.short_tag"], diff --git a/emu/emu_docker.py b/emu/emu_docker.py index ce144b89..a6e4e607 100644 --- a/emu/emu_docker.py +++ b/emu/emu_docker.py @@ -103,7 +103,7 @@ def create_docker_image(args): continue emu_docker = EmulatorContainer( - emulator, sys_docker, args.repo, cfg.collect_metrics(), args.extra + emulator, sys_docker, args.repo, cfg.collect_metrics(), args.extra, args.name ) emu_docker.build(Path(args.dest) / "emulator") @@ -255,6 +255,9 @@ def main(): create_parser.add_argument( "--sys", action="store_true", help="Process system image layer only." ) + create_parser.add_argument( + "--name", help="Name to give image when pushed.", default=None + ) create_parser.set_defaults(func=create_docker_image) create_inter = subparsers.add_parser(