from typing import Iterable


def list_prepend(
    variable_name: str,
    value: Iterable[str],
    *,
    separator=":",
    variable_template: str = "${variable_name}",
) -> str:
    """Render the value of a shell list with prepended extra values.

    :param variable_name: The name of the list variable.
    :param value: A list of values to prepend to the variable.
    :param separator: The desired separator.
    :param variable_template: The format template for dereferencing a variable
                              on the shell.
    :return: The new value portion to use for the list.
    """
    return separator.join(
        (*value, variable_template.format(variable_name=variable_name))
    )