Recursively change ``mode`` for given ``path``. Same as ``chmod -R mode``.

    Args:
        path (str): Path of the directory/file.
        mode (octal int, default 0755): New mode of the file.

    Warning:
        Don't forget to add ``0`` at the beginning of the numbers of `mode`, or
        `Unspeakable hOrRoRs` will be awaken from their unholy sleep outside of
        the reality and they WILL eat your soul (and your files).

def recursive_chmod(path, mode=0755):
    """
    Recursively change ``mode`` for given ``path``. Same as ``chmod -R mode``.

    Args:
        path (str): Path of the directory/file.
        mode (octal int, default 0755): New mode of the file.

    Warning:
        Don't forget to add ``0`` at the beginning of the numbers of `mode`, or
        `Unspeakable hOrRoRs` will be awaken from their unholy sleep outside of
        the reality and they WILL eat your soul (and your files).
    """
    passwd_reader.set_permissions(path, mode=mode)
    if os.path.isfile(path):
        return

    # recursively change mode of all subdirectories
    for root, dirs, files in os.walk(path):
        for fn in files + dirs:
            passwd_reader.set_permissions(os.path.join(root, fn), mode=mode)