summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorTrainDoctor <traindoctor@protonmail.com>2022-08-31 12:20:13 -0700
committerTrainDoctor <traindoctor@protonmail.com>2022-08-31 12:20:31 -0700
commit16a6e9b6a929dea4ad4607368e4e0c515ed15b61 (patch)
tree3da8007696c1958825c2820759f982969eabc01b /backend
parent6f84cf94b598421ddf06810f56e165284d535474 (diff)
downloaddecky-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.py24
-rw-r--r--backend/main.py19
-rw-r--r--backend/settings.py16
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()