def new_shadow_file_line()

in antlir/compiler/items/user.py [0:0]


def new_shadow_file_line(line: str) -> ShadowFileLine:
    """Turns a line from a shadow file into a ShadowFileLine"""
    expected_fields = 9
    fields = line.split(":")
    if len(fields) != expected_fields:
        raise RuntimeError(
            f"Invalid shadow file line (expected {expected_fields}, "
            f"got {len(fields)}): {line}"
        )
    return ShadowFileLine(
        name=fields[0],
        encrypted_passwd=fields[1],
        lastchanged=int(fields[2]) if fields[2] else -1,
        min_age=int(fields[3]) if fields[3] else -1,
        max_age=int(fields[4]) if fields[4] else -1,
        warning_period=int(fields[5]) if fields[5] else -1,
        inactivity=int(fields[6]) if fields[6] else -1,
        expiration=int(fields[7]) if fields[7] else -1,
        reserved_field=fields[8],
    )