38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
"""Helper to gather system info."""
|
|
import os
|
|
import platform
|
|
from typing import Dict
|
|
|
|
from homeassistant.const import __version__ as current_version
|
|
from homeassistant.loader import bind_hass
|
|
from homeassistant.util.package import is_virtual_env
|
|
|
|
from .typing import HomeAssistantType
|
|
|
|
|
|
@bind_hass
|
|
async def async_get_system_info(hass: HomeAssistantType) -> Dict:
|
|
"""Return info about the system."""
|
|
info_object = {
|
|
"version": current_version,
|
|
"dev": "dev" in current_version,
|
|
"hassio": hass.components.hassio.is_hassio(),
|
|
"virtualenv": is_virtual_env(),
|
|
"python_version": platform.python_version(),
|
|
"docker": False,
|
|
"arch": platform.machine(),
|
|
"timezone": str(hass.config.time_zone),
|
|
"os_name": platform.system(),
|
|
}
|
|
|
|
if platform.system() == "Windows":
|
|
info_object["os_version"] = platform.win32_ver()[0]
|
|
elif platform.system() == "Darwin":
|
|
info_object["os_version"] = platform.mac_ver()[0]
|
|
elif platform.system() == "FreeBSD":
|
|
info_object["os_version"] = platform.release()
|
|
elif platform.system() == "Linux":
|
|
info_object["docker"] = os.path.isfile("/.dockerenv")
|
|
|
|
return info_object
|