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)]
 |