def METHOD_NAME() -> None:
    """Copy the tiles from a cache to an other."""
    try:
        parser = ArgumentParser(
            description="Used to copy the tiles from a cache to an other", prog=sys.argv[0]
        )
        add_common_options(parser, near=False, time=False, dimensions=True, cache=False)
        parser.add_argument("--process", dest="process", metavar="NAME", help="The process name to do")
        parser.add_argument("source", metavar="SOURCE", help="The source cache")
        parser.add_argument("dest", metavar="DEST", help="The destination cache")
        options = parser.parse_args()
        gene = TileGeneration(options.config, options)
        assert gene.config_file
        config = gene.get_config(gene.config_file)
        if options.layer:
            copy = Copy()
            copy.copy(options, gene, options.layer, options.source, options.dest, "copy")
        else:
            layers = (
                config.config["generation"]["default_layers"]
                if "default_layers" in config.config["generation"]
                else config.config["layers"].keys()
            )
            for layer in layers:
                copy = Copy()
                copy.copy(options, gene, layer, options.source, options.dest, "copy")
    except SystemExit:
        raise
    except:  # pylint: disable=bare-except
        logger.exception("Exit with exception")
        if os.environ.get("TESTS", "false").lower() == "true":
            raise
        sys.exit(1)