bundlewrap/bundles/homeassistant/files/check_homeassistant_update

43 lines
1.1 KiB
Python

#!/usr/bin/env python3
from sys import exit
from packaging import version
from requests import get
API_TOKEN = "${token}"
DOMAIN = "${domain}"
try:
r = get("https://version.home-assistant.io/stable.json")
r.raise_for_status()
stable_version = r.json()["homeassistant"]["generic-x86-64"]
except Exception as e:
print(f"Could not get stable version information from home-assistant.io: {e!r}")
exit(3)
try:
r = get(
f"https://{DOMAIN}/api/config",
headers={"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"},
)
r.raise_for_status()
running_version = r.json()["version"]
except Exception as e:
print(f"Could not get running version information from homeassistant: {e!r}")
exit(3)
try:
if stable_version > running_version:
print(
f"There is a newer version available: {stable_version} (currently installed: {running_version})"
)
exit(2)
else:
print(
f"Currently running version {running_version} matches newest release on home-assistant.io"
)
exit(0)
except Exception as e:
print(repr(e))
exit(3)