largefiles: refactor _usercachedir() to allow reuse with lfs
Largefiles puts everything into a flat directory, while lfs divides files up by
creating subdirectories consisting of the first two characters of the hash.
Therefore, pointing at the largefiles cache won't work.
--- a/hgext/largefiles/lfutil.py Thu Nov 16 21:05:15 2017 -0500
+++ b/hgext/largefiles/lfutil.py Tue Dec 05 23:08:59 2017 -0500
@@ -69,31 +69,31 @@
to preserve download bandwidth and storage space.'''
return os.path.join(_usercachedir(ui), hash)
-def _usercachedir(ui):
+def _usercachedir(ui, name=longname):
'''Return the location of the "global" largefiles cache.'''
- path = ui.configpath(longname, 'usercache')
+ path = ui.configpath(name, 'usercache')
if path:
return path
if pycompat.iswindows:
appdata = encoding.environ.get('LOCALAPPDATA',\
encoding.environ.get('APPDATA'))
if appdata:
- return os.path.join(appdata, longname)
+ return os.path.join(appdata, name)
elif pycompat.isdarwin:
home = encoding.environ.get('HOME')
if home:
- return os.path.join(home, 'Library', 'Caches', longname)
+ return os.path.join(home, 'Library', 'Caches', name)
elif pycompat.isposix:
path = encoding.environ.get('XDG_CACHE_HOME')
if path:
- return os.path.join(path, longname)
+ return os.path.join(path, name)
home = encoding.environ.get('HOME')
if home:
- return os.path.join(home, '.cache', longname)
+ return os.path.join(home, '.cache', name)
else:
raise error.Abort(_('unknown operating system: %s\n')
% pycompat.osname)
- raise error.Abort(_('unknown %s usercache location') % longname)
+ raise error.Abort(_('unknown %s usercache location') % name)
def inusercache(ui, hash):
path = usercachepath(ui, hash)