mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 09:47:52 +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:
|
||||
"""Validate that Home Assistant is running in a supported operating system."""
|
||||
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)
|
||||
|
||||
|
||||
@ -24,7 +27,8 @@ def validate_python() -> None:
|
||||
if sys.version_info[:3] < REQUIRED_PYTHON_VER:
|
||||
print(
|
||||
"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)
|
||||
|
||||
@ -39,18 +43,23 @@ def ensure_config_path(config_dir: str) -> None:
|
||||
# Test if configuration directory exists
|
||||
if not os.path.isdir(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(
|
||||
f"Fatal Error: Specified configuration directory {config_dir} "
|
||||
"does not exist"
|
||||
f"Fatal Error: Specified configuration directory {config_dir} {reason}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
os.mkdir(config_dir)
|
||||
except OSError:
|
||||
except OSError as ex:
|
||||
print(
|
||||
"Fatal Error: Unable to create default configuration "
|
||||
f"directory {config_dir}"
|
||||
f"directory {config_dir}: {ex}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
@ -58,8 +67,11 @@ def ensure_config_path(config_dir: str) -> None:
|
||||
if not os.path.isdir(lib_dir):
|
||||
try:
|
||||
os.mkdir(lib_dir)
|
||||
except OSError:
|
||||
print(f"Fatal Error: Unable to create library directory {lib_dir}")
|
||||
except OSError as ex:
|
||||
print(
|
||||
f"Fatal Error: Unable to create library directory {lib_dir}: {ex}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user