diff --git a/projects/freebsd.py b/projects/freebsd.py index a6059d2..e6ee5bf 100644 --- a/projects/freebsd.py +++ b/projects/freebsd.py @@ -3,7 +3,35 @@ Contains FreeBSD class """ from project import Project - +from shared import CSC_MIRROR +import requests class FreeBSD(Project): - """FreeBSD class""" + """FreeBSD class""" + + # FreeBSD's time file has two segments, so we need a special function + # Example TIMESTAMP file: 1648308600 2022-03-26T15:30:00 UTC + def check(data, project, current_time): + """Check if project packages are up-to-date""" + csc_url = CSC_MIRROR + data[project]["csc"] + data[project]["file"] + upstream_url = data[project]["upstream"] + data[project]["file"] + + req = requests.get(csc_url) + req.raise_for_status() + CSC = req.text + + req = requests.get(upstream_url) + req.raise_for_status() + upstream = req.text + + if upstream == CSC: + return True + try: + return get_timestamp_for_freebsd(upstream) - get_timestamp_for_freebsd(CSC) < data[project]["out_of_sync_interval"] + except ValueError: + print("failed to parse apache") + return False + +def get_timestamp_for_freebsd(s: str) -> int: + real_time = s.split(" ")[0] + return int(real_time)