diff --git a/src/ibm-aix.py b/src/ibm-aix.py new file mode 100644 index 00000000..42f07f1f --- /dev/null +++ b/src/ibm-aix.py @@ -0,0 +1,39 @@ +from bs4 import BeautifulSoup +from common import endoflife +from datetime import datetime + + +PRODUCT = "ibm-aix" +URL = "https://www.ibm.com/support/pages/aix-support-lifecycle-information" + + +# Convert date from e.g. "November 2022" format to "2022-11-01" +def convert_date(date_str): + return datetime.strptime(date_str, "%B %Y").strftime("%Y-%m-%d") + + +def fetch_releases(): + response = endoflife.fetch_url(URL) + soup = BeautifulSoup(response, features="html5lib") + + releases = {} + # for all release tables + for release_table in soup.find("div", class_="ibm-container-body").find_all("table", class_="ibm-data-table ibm-grid"): + # for all rows except the header one + for row in release_table.find_all("tr")[1:]: + cells = row.find_all("td") + version = cells[0].text.strip("AIX ").replace(' TL', '.') + date = convert_date(cells[1].text) + print(f"{version} : {date}") + releases[version] = date + + return releases + + +print(f"::group::{PRODUCT}") +releases = fetch_releases() +endoflife.write_releases(PRODUCT, dict( + # sort by date then version (desc) + sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True) +)) +print("::endgroup::")