Skip to content

Commit

Permalink
Merge pull request #646 from rski/master
Browse files Browse the repository at this point in the history
linux/storagepath: fixup a host of issues
  • Loading branch information
akshayaurora authored Jul 6, 2022
2 parents 24dc23f + f803697 commit e248597
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions plyer/platforms/linux/storagepath.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,36 @@
'''

from plyer.facades import StoragePath
from os.path import expanduser, dirname, abspath
from os.path import expanduser, dirname, abspath, join, exists

# Default paths for each name
USER_DIRS = "/.config/user-dirs.dirs"

PATHS = {
"DESKTOP": "/Desktop",
"DOCUMENTS": "/Documents",
"DOWNLOAD": "/Downloads",
"MUSIC": "/Music",
"PICTURES": "/Pictures",
"VIDEOS": "/Videos"
"DESKTOP": "Desktop",
"DOCUMENTS": "Documents",
"DOWNLOAD": "Downloads",
"MUSIC": "Music",
"PICTURES": "Pictures",
"VIDEOS": "Videos"
}


class LinuxStoragePath(StoragePath):

def _get_from_user_dirs(self, name):
try:
with open(self._get_home_dir() + USER_DIRS, "r") as f:
lines = f.readlines()
# Find the line that starts with XDG_<name> to get the path
index = [i for i, v in enumerate(lines)
if v.startswith("XDG_" + name)][0]
return lines[index].split('"')[1]
except KeyError:
return PATHS[name]
except Exception as e:
raise e
home_dir = self._get_home_dir()
default = join(home_dir, PATHS[name])
user_dirs = join(home_dir, USER_DIRS)
if not exists(user_dirs):
return default

with open(user_dirs, "r") as f:
for l in f.readlines():
if l.startswith("XDG_" + name):
return l.split('"')[1]

return default

def _get_home_dir(self):
return expanduser('~')
Expand All @@ -44,7 +45,7 @@ def _get_root_dir(self):
return "/"

def _get_documents_dir(self):
directory = self._get_from_user_dirs("DOCUMENT")
directory = self._get_from_user_dirs("DOCUMENTS")
return directory.replace("$HOME", self._get_home_dir())

def _get_downloads_dir(self):
Expand Down

0 comments on commit e248597

Please sign in to comment.