Skip to content

Commit

Permalink
#3964 add state dir to paths
Browse files Browse the repository at this point in the history
  • Loading branch information
totaam committed Oct 11, 2023
1 parent fa0b859 commit 5f9a3e3
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 4 deletions.
3 changes: 3 additions & 0 deletions xpra/platform/darwin/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ def do_get_default_log_dirs() -> list[str]:
dirs.append(tempfile.gettempdir())
return dirs

def do_get_state_dir() -> str:
return "~/.xpra/state"

def do_get_sessions_dir() -> str:
return "~/.xpra/sessions"

Expand Down
12 changes: 11 additions & 1 deletion xpra/platform/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,14 @@ def do_get_default_conf_dirs() -> list[str]:
#some platforms may also ship a default config with the application
return []

def get_state_dir() -> str:
return env_or_delegate("XPRA_STATE_DIR", do_get_state_dir)
def do_get_state_dir() -> str:
d = "~/.local/state"
if not os.path.exists(os.path.expanduser(d)):
return "~"
return d


def get_sessions_dir() -> str:
return envaslist_or_delegate("XPRA_SESSIONS_DIRS", do_get_sessions_dir)
Expand Down Expand Up @@ -317,6 +325,7 @@ def do_get_python_execfile_command() -> list[str]:
"do_get_ssh_conf_dirs",
"do_get_ssh_known_hosts_files",
"do_get_user_conf_dirs",
"do_get_state_dir",
"do_get_sessions_dir",
"do_get_socket_dirs",
"do_get_client_socket_dirs",
Expand Down Expand Up @@ -347,7 +356,8 @@ def get_info():
"ssl-hosts-config" : {"dirs" : get_ssl_hosts_config_dirs()},
"ssh_conf" : {"dirs" : get_ssh_conf_dirs()},
"user_conf" : {"dirs" : get_user_conf_dirs()},
"sessions" : {"dir" : do_get_sessions_dir()},
"state" : {"dir" : get_state_dir()},
"sessions" : {"dir" : get_sessions_dir()},
"socket" : {"dirs" : get_socket_dirs()},
"client-socket" : {"dirs" : get_client_socket_dirs()},
"log" : {"dirs" : get_default_log_dirs()},
Expand Down
16 changes: 14 additions & 2 deletions xpra/platform/posix/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,26 @@ def do_get_system_conf_dirs():
prefix = get_install_prefix()
if prefix not in ("/usr", "/usr/local"):
if prefix.endswith(".local"):
idir= os.path.join(prefix, "xpra") #ie: ~/.local/xpra
idir = os.path.join(prefix, "xpra") #ie: ~/.local/xpra
else:
idir= os.path.join(prefix, "/etc/xpra/") #ie: /someinstallpath/etc/xpra
idir = os.path.join(prefix, "/etc/xpra/") #ie: /someinstallpath/etc/xpra
if idir not in dirs:
dirs.append(idir)
return dirs


def do_get_state_dir():
if os.getuid()>0:
xdg_state = os.path.expanduser(os.environ.get("XDG_STATE_HOME", "~/.local/state"))
state_dir = os.path.expanduser(xdg_state)
if state_dir and os.path.exists(state_dir):
xpra_state = os.path.join(state_dir, "xpra")
if not os.path.exists(xpra_state):
os.mkdir(xpra_state)
return os.path.join(xdg_state, "xpra")
return "~/.xpra/state"


def do_get_user_conf_dirs(uid):
#per-user configuration location:
#(but never use /root/.xpra or /root/.config/xpra)
Expand Down
5 changes: 4 additions & 1 deletion xpra/platform/win32/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,11 @@ def do_get_ssh_known_hosts_files() -> list[str]:
return ["~/ssh/known_hosts", "~/.ssh/known_hosts"]


def do_get_state_dir() -> str:
return "%APPDATA%\\Xpra\\state"

def do_get_sessions_dir() -> str:
return "%APPDATA%\\Xpra"
return "%APPDATA%\\Xpra\\sessions"


def do_get_default_conf_dirs() -> list[str]:
Expand Down

0 comments on commit 5f9a3e3

Please sign in to comment.