diff options
| author | TrainDoctor <traindoctor@protonmail.com> | 2022-08-31 12:20:13 -0700 |
|---|---|---|
| committer | TrainDoctor <traindoctor@protonmail.com> | 2022-08-31 12:20:31 -0700 |
| commit | 16a6e9b6a929dea4ad4607368e4e0c515ed15b61 (patch) | |
| tree | 3da8007696c1958825c2820759f982969eabc01b /backend | |
| parent | 6f84cf94b598421ddf06810f56e165284d535474 (diff) | |
| download | decky-loader-16a6e9b6a929dea4ad4607368e4e0c515ed15b61.tar.gz decky-loader-16a6e9b6a929dea4ad4607368e4e0c515ed15b61.zip | |
Give SettingsManager a default directoryv2.0.5-pre20
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/helpers.py | 24 | ||||
| -rw-r--r-- | backend/main.py | 19 | ||||
| -rw-r--r-- | backend/settings.py | 16 |
3 files changed, 42 insertions, 17 deletions
diff --git a/backend/helpers.py b/backend/helpers.py index 0991f446..c54139cc 100644 --- a/backend/helpers.py +++ b/backend/helpers.py @@ -1,13 +1,12 @@ -import certifi -import ssl -import uuid import re +import ssl import subprocess - -from aiohttp.web import middleware, Response +import uuid from subprocess import check_output from time import sleep +import certifi +from aiohttp.web import Response, middleware REMOTE_DEBUGGER_UNIT = "steam-web-debug-portforward.service" @@ -69,6 +68,21 @@ def get_user_group() -> str: raise ValueError("helpers.get_user_group method called before group variable was set. Run helpers.set_user_group first.") return group +# Get the default home path unless a user is specified +def get_home_path(username = None) -> str: + if username == None: + raise ValueError("Username not defined, no home path can be found.") + else: + return str("/home/"+username) + +# Get the default homebrew path unless a user is specified +def get_homebrew_path(home_path = None) -> str: + if home_path == None: + raise ValueError("Home path not defined, homebrew dir cannot be determined.") + else: + return str(home_path+"/homebrew") + # return str(home_path+"/homebrew") + async def is_systemd_unit_active(unit_name: str) -> bool: res = subprocess.run(["systemctl", "is-active", unit_name], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) return res.returncode == 0 diff --git a/backend/main.py b/backend/main.py index 1f365fe5..83032be3 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1,24 +1,27 @@ # Full imports -import aiohttp_cors - -# Partial imports -from aiohttp import ClientSession -from aiohttp.web import Application, run_app, static, get, Response -from aiohttp_jinja2 import setup as jinja_setup from asyncio import get_event_loop, sleep from json import dumps, loads from logging import DEBUG, INFO, basicConfig, getLogger from os import getenv, path from subprocess import call +import aiohttp_cors +# Partial imports +from aiohttp import ClientSession +from aiohttp.web import Application, Response, get, run_app, static +from aiohttp_jinja2 import setup as jinja_setup + # local modules from browser import PluginBrowser -from helpers import csrf_middleware, get_csrf_token, get_user, get_user_group, set_user, set_user_group, stop_systemd_unit, REMOTE_DEBUGGER_UNIT +from helpers import (REMOTE_DEBUGGER_UNIT, csrf_middleware, get_csrf_token, + get_home_path, get_homebrew_path, get_user, + get_user_group, set_user, set_user_group, + stop_systemd_unit) from injector import inject_to_tab, tab_has_global_var from loader import Loader +from settings import SettingsManager from updater import Updater from utilities import Utilities -from settings import SettingsManager # Ensure USER and GROUP vars are set first. # TODO: This isn't the best way to do this but supports the current diff --git a/backend/settings.py b/backend/settings.py index 59849052..9b09a3e2 100644 --- a/backend/settings.py +++ b/backend/settings.py @@ -1,8 +1,16 @@ -from os import path, mkdir -from json import load, dump +import imp +from json import dump, load +from os import mkdir, path + +from helpers import get_home_path, get_homebrew_path, get_user, set_user + class SettingsManager: - def __init__(self, name, settings_directory) -> None: + def __init__(self, name, settings_directory = None) -> None: + set_user() + USER = get_user() + if settings_directory == None: + settings_directory = get_homebrew_path(get_home_path(USER)) self.path = path.join(settings_directory, name + ".json") if not path.exists(settings_directory): @@ -33,4 +41,4 @@ class SettingsManager: def setSetting(self, key, value): self.settings[key] = value - self.commit()
\ No newline at end of file + self.commit() |
