Skip to content

Commit 661fb56

Browse files
committed
Support Appimage portable config switch
1 parent 226cf3f commit 661fb56

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

constants.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def _merge_vars(base_vars: JsonType, vars: JsonType) -> None:
8181
raise RuntimeError(f"Unspecified variable: '{k}'")
8282

8383

84-
# Base Paths
84+
# Self path
8585
if IS_APPIMAGE:
8686
SELF_PATH = Path(os.environ["APPIMAGE"]).resolve()
8787
else:
@@ -91,15 +91,20 @@ def _merge_vars(base_vars: JsonType, vars: JsonType) -> None:
9191
SELF_PATH = Path(sys.argv[0]).resolve()
9292
if SELF_PATH.stem == "pyinstaller" or SELF_PATH.name == "gui.py":
9393
SELF_PATH = Path(__file__).with_name("main.py").resolve()
94+
# Working / config directory path
9495
WORKING_DIR = SELF_PATH.parent
96+
if IS_APPIMAGE:
97+
_config_folder: Path = SELF_PATH.with_name(f"{SELF_PATH.name}.config")
98+
if _config_folder.is_dir(): # exists and is a directory
99+
WORKING_DIR = _config_folder
95100
# Development paths
96-
VENV_PATH = Path(WORKING_DIR, "env")
101+
VENV_PATH = Path(SELF_PATH.parent, "env")
97102
SITE_PACKAGES_PATH = Path(VENV_PATH, SYS_SITE_PACKAGES)
98103
SCRIPTS_PATH = Path(VENV_PATH, SYS_SCRIPTS)
99104
# Translations path
100105
# NOTE: These don't have to be available to the end-user, so the path points to the internal dir
101106
LANG_PATH = _resource_path("lang")
102-
# Other Paths
107+
# Other paths
103108
LOG_PATH = Path(WORKING_DIR, "log.txt")
104109
DUMP_PATH = Path(WORKING_DIR, "dump.dat")
105110
LOCK_PATH = Path(WORKING_DIR, "lock.file")

0 commit comments

Comments
 (0)