mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	* Fix environment vars reading * fix yaml returning none * Assume rocm model is onnx despite file extension
		
			
				
	
	
		
			33 lines
		
	
	
		
			1019 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1019 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
from pathlib import Path
 | 
						|
from typing import Annotated
 | 
						|
 | 
						|
from pydantic import AfterValidator, ValidationInfo
 | 
						|
 | 
						|
FRIGATE_ENV_VARS = {k: v for k, v in os.environ.items() if k.startswith("FRIGATE_")}
 | 
						|
# read docker secret files as env vars too
 | 
						|
if os.path.isdir("/run/secrets") and os.access("/run/secrets", os.R_OK):
 | 
						|
    for secret_file in os.listdir("/run/secrets"):
 | 
						|
        if secret_file.startswith("FRIGATE_"):
 | 
						|
            FRIGATE_ENV_VARS[secret_file] = (
 | 
						|
                Path(os.path.join("/run/secrets", secret_file)).read_text().strip()
 | 
						|
            )
 | 
						|
 | 
						|
 | 
						|
def validate_env_string(v: str) -> str:
 | 
						|
    return v.format(**FRIGATE_ENV_VARS)
 | 
						|
 | 
						|
 | 
						|
EnvString = Annotated[str, AfterValidator(validate_env_string)]
 | 
						|
 | 
						|
 | 
						|
def validate_env_vars(v: dict[str, str], info: ValidationInfo) -> dict[str, str]:
 | 
						|
    if isinstance(info.context, dict) and info.context.get("install", False):
 | 
						|
        for k, v in v.items():
 | 
						|
            os.environ[k] = v
 | 
						|
 | 
						|
    return v
 | 
						|
 | 
						|
 | 
						|
EnvVars = Annotated[dict[str, str], AfterValidator(validate_env_vars)]
 |