mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Startup error message improvements (#85860)
* Output config and lib dir create failure reasons * Output to stderr * Fix error message when specified config directory is not a directory
This commit is contained in:
parent
3ae4e98204
commit
19426ec18a
@ -15,7 +15,10 @@ FAULT_LOG_FILENAME = "home-assistant.log.fault"
|
|||||||
def validate_os() -> None:
|
def validate_os() -> None:
|
||||||
"""Validate that Home Assistant is running in a supported operating system."""
|
"""Validate that Home Assistant is running in a supported operating system."""
|
||||||
if not sys.platform.startswith(("darwin", "linux")):
|
if not sys.platform.startswith(("darwin", "linux")):
|
||||||
print("Home Assistant only supports Linux, OSX and Windows using WSL")
|
print(
|
||||||
|
"Home Assistant only supports Linux, OSX and Windows using WSL",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
@ -24,7 +27,8 @@ def validate_python() -> None:
|
|||||||
if sys.version_info[:3] < REQUIRED_PYTHON_VER:
|
if sys.version_info[:3] < REQUIRED_PYTHON_VER:
|
||||||
print(
|
print(
|
||||||
"Home Assistant requires at least Python "
|
"Home Assistant requires at least Python "
|
||||||
f"{REQUIRED_PYTHON_VER[0]}.{REQUIRED_PYTHON_VER[1]}.{REQUIRED_PYTHON_VER[2]}"
|
f"{REQUIRED_PYTHON_VER[0]}.{REQUIRED_PYTHON_VER[1]}.{REQUIRED_PYTHON_VER[2]}",
|
||||||
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
@ -39,18 +43,23 @@ def ensure_config_path(config_dir: str) -> None:
|
|||||||
# Test if configuration directory exists
|
# Test if configuration directory exists
|
||||||
if not os.path.isdir(config_dir):
|
if not os.path.isdir(config_dir):
|
||||||
if config_dir != config_util.get_default_config_dir():
|
if config_dir != config_util.get_default_config_dir():
|
||||||
|
if os.path.exists(config_dir):
|
||||||
|
reason = "is not a directory"
|
||||||
|
else:
|
||||||
|
reason = "does not exist"
|
||||||
print(
|
print(
|
||||||
f"Fatal Error: Specified configuration directory {config_dir} "
|
f"Fatal Error: Specified configuration directory {config_dir} {reason}",
|
||||||
"does not exist"
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.mkdir(config_dir)
|
os.mkdir(config_dir)
|
||||||
except OSError:
|
except OSError as ex:
|
||||||
print(
|
print(
|
||||||
"Fatal Error: Unable to create default configuration "
|
"Fatal Error: Unable to create default configuration "
|
||||||
f"directory {config_dir}"
|
f"directory {config_dir}: {ex}",
|
||||||
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
@ -58,8 +67,11 @@ def ensure_config_path(config_dir: str) -> None:
|
|||||||
if not os.path.isdir(lib_dir):
|
if not os.path.isdir(lib_dir):
|
||||||
try:
|
try:
|
||||||
os.mkdir(lib_dir)
|
os.mkdir(lib_dir)
|
||||||
except OSError:
|
except OSError as ex:
|
||||||
print(f"Fatal Error: Unable to create library directory {lib_dir}")
|
print(
|
||||||
|
f"Fatal Error: Unable to create library directory {lib_dir}: {ex}",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user