Add API update controls #22
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import shlex
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
@@ -21,6 +22,9 @@ class Settings(BaseModel):
|
||||
sonarr_url: str | None = None
|
||||
sonarr_api_key: str | None = None
|
||||
auth_token: str | None = None
|
||||
restart_command: list[str] = Field(default_factory=lambda: ["systemctl", "restart", "importarr.service"])
|
||||
update_command: list[str] = Field(default_factory=lambda: ["sh", "deploy/repo-upgrade.sh"])
|
||||
control_command_timeout_seconds: int = Field(default=120, ge=1)
|
||||
bind_host: str = "127.0.0.1"
|
||||
bind_port: int = 8765
|
||||
poll_seconds: int = Field(default=60, ge=5)
|
||||
@@ -42,6 +46,9 @@ class Settings(BaseModel):
|
||||
sonarr_url=os.getenv("IMPORTARR_SONARR_URL"),
|
||||
sonarr_api_key=_env_secret("IMPORTARR_SONARR_API_KEY"),
|
||||
auth_token=_env_secret("IMPORTARR_AUTH_TOKEN"),
|
||||
restart_command=_env_command("IMPORTARR_RESTART_COMMAND", ["systemctl", "restart", "importarr.service"]),
|
||||
update_command=_env_command("IMPORTARR_UPDATE_COMMAND", ["sh", "deploy/repo-upgrade.sh"]),
|
||||
control_command_timeout_seconds=int(os.getenv("IMPORTARR_CONTROL_COMMAND_TIMEOUT_SECONDS", "120")),
|
||||
bind_host=os.getenv("IMPORTARR_BIND_HOST", "127.0.0.1"),
|
||||
bind_port=int(os.getenv("IMPORTARR_BIND_PORT", "8765")),
|
||||
poll_seconds=int(os.getenv("IMPORTARR_POLL_SECONDS", "60")),
|
||||
@@ -63,3 +70,10 @@ def _env_secret(name: str) -> str | None:
|
||||
if file_value:
|
||||
return Path(file_value).read_text(encoding="utf-8").strip()
|
||||
return os.getenv(name)
|
||||
|
||||
|
||||
def _env_command(name: str, default: list[str]) -> list[str]:
|
||||
value = os.getenv(name)
|
||||
if not value:
|
||||
return default
|
||||
return shlex.split(value)
|
||||
|
||||
Reference in New Issue
Block a user