Safely load config file for go2rtc (#11491)

* Safely load config file for go2rtc

* Add log for default config

* Cleanup
This commit is contained in:
Nicolas Mowen 2024-05-22 17:10:55 -06:00 committed by GitHub
parent 527d2ab27b
commit 4d05bc25f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 7 deletions

View File

@ -32,13 +32,16 @@ config_file_yaml = config_file.replace(".yml", ".yaml")
if os.path.isfile(config_file_yaml):
config_file = config_file_yaml
with open(config_file) as f:
raw_config = f.read()
try:
with open(config_file) as f:
raw_config = f.read()
if config_file.endswith((".yaml", ".yml")):
config: dict[str, any] = yaml.safe_load(raw_config)
elif config_file.endswith(".json"):
config: dict[str, any] = json.loads(raw_config)
if config_file.endswith((".yaml", ".yml")):
config: dict[str, any] = yaml.safe_load(raw_config)
elif config_file.endswith(".json"):
config: dict[str, any] = json.loads(raw_config)
except FileNotFoundError:
config: dict[str, any] = {}
go2rtc_config: dict[str, any] = config.get("go2rtc", {})

View File

@ -279,7 +279,7 @@ def find_by_key(dictionary, target_key):
return None
def save_default_config(location: str):
def save_default_config(location: str) -> None:
try:
with open(location, "w") as f:
f.write(
@ -303,6 +303,11 @@ cameras:
)
except PermissionError:
logger.error("Unable to write default config to /config")
return
logger.info(
"Created default config file, see the getting started docs for configuration https://docs.frigate.video/guides/getting_started"
)
def get_tomorrow_at_time(hour: int) -> datetime.datetime: