summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyproject.toml1
-rw-r--r--src/server/__main__.py7
-rw-r--r--src/server/settings.py2
3 files changed, 9 insertions, 1 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 2b934b4..826c390 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -17,6 +17,7 @@ dependencies = [
"flask-socketio",
"numpy",
"pillow",
+ "platformdirs",
"pygame",
"pyopengl",
"requests",
diff --git a/src/server/__main__.py b/src/server/__main__.py
index 508a13a..77bb42a 100644
--- a/src/server/__main__.py
+++ b/src/server/__main__.py
@@ -1,4 +1,6 @@
import argparse
+from platformdirs import user_config_dir
+from pathlib import Path
from .flaskapi import app, socketio
from .settings import Config
@@ -6,9 +8,12 @@ from .manager import PixMan
def main():
+ config_dir = Path(user_config_dir("immich-frame"))
+ config_file = config_dir / "config.json"
+
p = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
p.add_argument("--fullscreen", help="start viewer window in fullscreen", action="store_true")
- p.add_argument("--config", type=str, help="set config file path", default="config.json")
+ p.add_argument("--config", type=str, help="set config file path", default=config_file)
p.add_argument("--host", type=str, help="set web interface host", default="0.0.0.0")
p.add_argument("--port", type=int, help="set web interface port", default=8080)
args = p.parse_args()
diff --git a/src/server/settings.py b/src/server/settings.py
index ce76e82..49b9876 100644
--- a/src/server/settings.py
+++ b/src/server/settings.py
@@ -1,4 +1,5 @@
from dataclasses import dataclass, asdict, field
+from pathlib import Path
import json
@@ -24,6 +25,7 @@ class Config:
return cls(**json.load(fp))
def save(self, filepath):
+ Path(filepath).parent.mkdir(parents=True, exist_ok=True) # Create dir if not existing
with open(filepath, "w") as fp:
json.dump(asdict(self), fp, indent=2)