import os


def _get_config_expand(config):
  """ Get config with both context and dockerfile_path written to it """
  if config and "subdir" in config and "context" not in config:
    config_expand = dict(config)
    config_expand["context"] = _create_context(config["subdir"])
    config_expand["dockerfile_path"] = _create_dockerfile_path(config["subdir"])
    return config_expand
  return config or {}


def _create_context(current_subdir):
  """ Create context from current subdir """
  if current_subdir.endswith("Dockerfile"):
    context, _ = os.path.split(current_subdir)
    if context == "":
      return os.path.sep

    return context

  if current_subdir == "":
    current_subdir = os.path.sep + current_subdir

  if current_subdir[len(current_subdir) - 1] != os.path.sep:
    current_subdir += os.path.sep

  context, _ = os.path.split(current_subdir)
  return context


def _create_dockerfile_path(current_subdir):
  """ Create dockefile path from current subdir """
  if current_subdir.endswith("Dockerfile"):
    return current_subdir

  if current_subdir == "":
    current_subdir = os.path.sep + current_subdir

  if current_subdir[len(current_subdir) - 1] != os.path.sep:
    current_subdir += os.path.sep

  return current_subdir + "Dockerfile"