# HG changeset patch # User Benjamin Pollack # Date 2011-10-20 21:05:13 # Node ID 681267a5f491386bcadbce757fab1ce01cdddf65 # Parent 9da7e96cd5c20dfbb2888891f76095380d62d38b largefiles: use XDG and OS X-specific cache locations by default (issue3067) diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -10,6 +10,7 @@ import os import errno +import platform import shutil import stat import hashlib @@ -88,8 +89,15 @@ def usercachepath(ui, hash): if os.name == 'nt': appdata = os.getenv('LOCALAPPDATA', os.getenv('APPDATA')) path = os.path.join(appdata, longname, hash) + elif platform.system() == 'Darwin': + path = os.path.join(os.getenv('HOME'), 'Library', 'Caches', + longname, hash) elif os.name == 'posix': - path = os.path.join(os.getenv('HOME'), '.' + longname, hash) + path = os.getenv('XDG_CACHE_HOME') + if path: + path = os.path.join(path, longname, hash) + else: + path = os.path.join(os.getenv('HOME'), '.cache', longname, hash) else: raise util.Abort(_('unknown operating system: %s\n') % os.name) return path