feat: add core modules (config, state, diff, apply, health)
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Unraid-Sync/1.0"}
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
ics_url: str
|
||||
baikal_url: str
|
||||
baikal_user: str
|
||||
baikal_pass: str
|
||||
sync_frequency: int
|
||||
|
||||
|
||||
def validate() -> Config:
|
||||
errors = []
|
||||
|
||||
ics_url = os.environ.get("ICS_URL")
|
||||
if not ics_url:
|
||||
errors.append("ICS_URL is required")
|
||||
|
||||
baikal_url = os.environ.get("BAIKAL_URL")
|
||||
if not baikal_url:
|
||||
errors.append("BAIKAL_URL is required")
|
||||
|
||||
baikal_user = os.environ.get("BAIKAL_USER")
|
||||
if not baikal_user:
|
||||
errors.append("BAIKAL_USER is required")
|
||||
|
||||
baikal_pass = os.environ.get("BAIKAL_PASS")
|
||||
if not baikal_pass:
|
||||
errors.append("BAIKAL_PASS is required")
|
||||
|
||||
sync_freq_raw = os.environ.get("SYNC_FREQUENCY", "5")
|
||||
try:
|
||||
sync_frequency = int(sync_freq_raw)
|
||||
if sync_frequency <= 0:
|
||||
raise ValueError
|
||||
except ValueError:
|
||||
errors.append("SYNC_FREQUENCY must be a positive integer")
|
||||
|
||||
if errors:
|
||||
raise ValueError("\n".join(errors))
|
||||
|
||||
return Config(
|
||||
ics_url=ics_url,
|
||||
baikal_url=baikal_url,
|
||||
baikal_user=baikal_user,
|
||||
baikal_pass=baikal_pass,
|
||||
sync_frequency=sync_frequency,
|
||||
)
|
||||
Reference in New Issue
Block a user