# # # add_dir "fdo" # # add_file "fdo/__init__.py" # content [da39a3ee5e6b4b0d3255bfef95601890afd80709] # # add_file "fdo/xdgbasedir.py" # content [864ac96a21a2fe65c401a7beaf2c98513795751d] # ============================================================ --- fdo/__init__.py da39a3ee5e6b4b0d3255bfef95601890afd80709 +++ fdo/__init__.py da39a3ee5e6b4b0d3255bfef95601890afd80709 ============================================================ --- fdo/xdgbasedir.py 864ac96a21a2fe65c401a7beaf2c98513795751d +++ fdo/xdgbasedir.py 864ac96a21a2fe65c401a7beaf2c98513795751d @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +# +# An implementation of the XDG Base Directory Specification +# http://standards.freedesktop.org/basedir-spec/latest/ +# + +import os + +def xdg_data_home(): + rv = os.getenv('XDG_DATA_HOME') + if rv: + return rv + home = os.getenv('HOME') + if home: + return os.path.join(home, ".local", "share") + else: + raise Exception("Unable to determine xdg_data_home") + +def xdg_config_home(): + rv = os.getenv('XDG_CONFIG_HOME') + if rv: + return rv + home = os.getenv('HOME') + if home: + return os.path.join(home, ".config") + else: + raise Exception("Unable to determine xdg_config_home") + +def xdg_data_dirs(): + dirs = [xdg_data_home()] + for dir in os.getenv('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':'): + dirs.append(dir) + return dirs + +def xdg_config_dirs(): + dirs = [xdg_config_home()] + for dir in os.getenv('XDG_DATA_DIRS', '/etc/xdg').split(':'): + dirs.append(dir) + return dirs + +def xdg_cache_home(): + rv = os.getenv('XDG_CACHE_HOME') + if rv: + return rv + home = os.getenv('HOME') + if home: + return os.path.join(home, ".cache") + else: + raise Exception("Unable to determine xdg_cache_home")