initial commit
This commit is contained in:
53
launcher/config.py
Normal file
53
launcher/config.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
DEFAULT_CONFIG = {
|
||||
"app_title": "FJLA Gateway",
|
||||
"checks": {
|
||||
"network_targets": [["1.1.1.1", 53], ["8.8.8.8", 53]],
|
||||
"ziti_target": ["127.0.0.1", 3020],
|
||||
},
|
||||
"services": [
|
||||
{
|
||||
"id": "helloworld",
|
||||
"title": "Test Service",
|
||||
"desc": "Test Service",
|
||||
"type": "browser",
|
||||
"target": "https://www.example.com",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
def get_config_path():
|
||||
"""Determines standard user config path: ~/.config/launcher/config.json"""
|
||||
config_dir = Path.home() / ".config" / "launcher"
|
||||
config_dir.mkdir(parents=True, exist_ok=True)
|
||||
return config_dir / "config.json"
|
||||
|
||||
def load_launcher_config(config_path=None):
|
||||
path = Path(config_path) if config_path else get_config_path()
|
||||
|
||||
if not path.exists():
|
||||
save_default_config(path)
|
||||
return DEFAULT_CONFIG
|
||||
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
user_config = json.load(f)
|
||||
merged = DEFAULT_CONFIG.copy()
|
||||
merged.update(user_config)
|
||||
return merged
|
||||
except Exception as e:
|
||||
print(
|
||||
f"Error loading config from {path}: {e}. Running with default config"
|
||||
)
|
||||
return DEFAULT_CONFIG
|
||||
|
||||
def save_default_config(path):
|
||||
try:
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
json.dump(DEFAULT_CONFIG, f, indent=4)
|
||||
print(f"Created default configuration at: {path}")
|
||||
except Exception as e:
|
||||
print(f"Failed to save default config: {e}")
|
||||
Reference in New Issue
Block a user