On 04/10/2018 04:39 PM, Alex Bennée wrote:
> From: Fam Zheng
>
> Signed-off-by: Fam Zheng
Reviewed-by: Philippe Mathieu-Daudé
Tested-by: Philippe Mathieu-Daudé
> ---
> tests/docker/docker.py | 23 +++
> 1 file changed, 23 insertions(+)
>
> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
> index 1246ba9578..8733266153 100755
> --- a/tests/docker/docker.py
> +++ b/tests/docker/docker.py
> @@ -390,6 +390,29 @@ class ImagesCommand(SubCommand):
> def run(self, args, argv):
> return Docker().command("images", argv, args.quiet)
>
> +class CcCommand(SubCommand):
> +"""Compile sources with cc in images"""
> +name = "cc"
> +
> +def args(self, parser):
> +parser.add_argument("--image", "-i", required=True,
> +help="The docker image in which to run cc")
> +parser.add_argument("--source-path", "-s", nargs="*", dest="paths",
> +help="""Extra paths to (ro) mount into container
> for
> +reading sources""")
> +
> +def run(self, args, argv):
> +if argv and argv[0] == "--":
> +argv = argv[1:]
> +cwd = os.getcwd()
> +cmd = ["--rm", "-w", cwd,
> + "-v", "%s:%s:rw" % (cwd, cwd)]
> +for p in args.paths:
> + cmd += ["-v", "%s:%s:ro,z" % (p, p)]
> +cmd += [args.image, "cc"]
> +cmd += argv
> +return Docker().command("run", cmd, True)
> +
> def main():
> parser = argparse.ArgumentParser(description="A Docker helper",
> usage="%s ..." % os.path.basename(sys.argv[0]))
>