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],
)