Use appdirs in first place, it's also a dependency for pyopencl
This commit is contained in:
parent
8798f2fbf5
commit
9bed0c4b53
|
@ -6,11 +6,11 @@ Namecoin queries
|
|||
import base64
|
||||
import httplib
|
||||
import json
|
||||
import os
|
||||
import socket
|
||||
import sys
|
||||
|
||||
import defaults
|
||||
import paths
|
||||
import tr # translate
|
||||
from addresses import decodeAddress
|
||||
from bmconfigparser import BMConfigParser
|
||||
|
@ -267,34 +267,6 @@ class namecoinConnection(object):
|
|||
raise Exception("Socket error in RPC connection: %s" % exc)
|
||||
|
||||
|
||||
def lookupNamecoinFolder():
|
||||
"""
|
||||
Look up the namecoin data folder.
|
||||
|
||||
.. todo:: Check whether this works on other platforms as well!
|
||||
"""
|
||||
|
||||
app = "namecoin"
|
||||
from os import path, environ
|
||||
if sys.platform == "darwin":
|
||||
if "HOME" in environ:
|
||||
dataFolder = path.join(os.environ["HOME"],
|
||||
"Library/Application Support/", app) + '/'
|
||||
else:
|
||||
print(
|
||||
"Could not find home folder, please report this message"
|
||||
" and your OS X version to the BitMessage Github."
|
||||
)
|
||||
sys.exit()
|
||||
|
||||
elif "win32" in sys.platform or "win64" in sys.platform:
|
||||
dataFolder = path.join(environ["APPDATA"], app) + "\\"
|
||||
else:
|
||||
dataFolder = path.join(environ["HOME"], ".%s" % app) + "/"
|
||||
|
||||
return dataFolder
|
||||
|
||||
|
||||
def ensureNamecoinOptions():
|
||||
"""
|
||||
Ensure all namecoin options are set, by setting those to default values
|
||||
|
@ -313,7 +285,7 @@ def ensureNamecoinOptions():
|
|||
# Try to read user/password from .namecoin configuration file.
|
||||
defaultUser = ""
|
||||
defaultPass = ""
|
||||
nmcFolder = lookupNamecoinFolder()
|
||||
nmcFolder = paths.lookupUserconfigDir('namecoin')
|
||||
nmcConfig = nmcFolder + "namecoin.conf"
|
||||
try:
|
||||
nmc = open(nmcConfig, "r")
|
||||
|
|
63
src/paths.py
63
src/paths.py
|
@ -32,48 +32,63 @@ def lookupExeFolder():
|
|||
return exeFolder
|
||||
|
||||
|
||||
def lookupUserconfigDir(appname):
|
||||
"""Lookup user data directory for the *appname* application"""
|
||||
try:
|
||||
from appdirs import user_config_dir
|
||||
return user_config_dir(appname, False, roaming=True) + os.path.sep
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
try:
|
||||
dataFolder = os.path.join(
|
||||
os.environ['HOME'],
|
||||
"Library/Application Support/", appname) + '/'
|
||||
except KeyError:
|
||||
sys.exit(
|
||||
"Could not find home folder, please report this message"
|
||||
" and your OS X version to the BitMessage Github.")
|
||||
elif sys.platform.startswith('win'):
|
||||
dataFolder = os.path.join(
|
||||
os.environ['APPDATA'], appname
|
||||
).decode(sys.getfilesystemencoding(), 'ignore') + os.path.sep
|
||||
else:
|
||||
dataFolder = os.path.join(
|
||||
os.environ['HOME'], '.%s' % appname) + os.path.sep
|
||||
|
||||
return dataFolder
|
||||
|
||||
|
||||
def lookupAppdataFolder():
|
||||
"""Returns path of the folder where application data is stored"""
|
||||
APPNAME = "PyBitmessage"
|
||||
|
||||
dataFolder = os.environ.get('BITMESSAGE_HOME')
|
||||
if dataFolder:
|
||||
if dataFolder[-1] not in (os.path.sep, os.path.altsep):
|
||||
dataFolder += os.path.sep
|
||||
elif sys.platform == 'darwin':
|
||||
try:
|
||||
dataFolder = os.path.join(
|
||||
os.environ['HOME'],
|
||||
'Library/Application Support/', APPNAME
|
||||
) + '/'
|
||||
return dataFolder
|
||||
|
||||
except KeyError:
|
||||
sys.exit(
|
||||
'Could not find home folder, please report this message'
|
||||
' and your OS X version to the BitMessage Github.')
|
||||
elif sys.platform.startswith('win'):
|
||||
dataFolder = os.path.join(
|
||||
os.environ['APPDATA'], APPNAME
|
||||
).decode(sys.getfilesystemencoding(), 'ignore') + os.path.sep
|
||||
dataFolder = lookupUserconfigDir(APPNAME)
|
||||
# Try to follow XDG spec on Linux, Unix or BSD
|
||||
# TODO: use pyxdg
|
||||
if os.name == 'posix' and sys.platform != 'darwin':
|
||||
try:
|
||||
os.path.isdir(dataFolder)
|
||||
except WindowsError:
|
||||
from appdirs import user_data_dir
|
||||
dataFolder = user_data_dir('PyBitmessage', False)
|
||||
else:
|
||||
try:
|
||||
dataFolder = os.path.join(os.environ['XDG_CONFIG_HOME'], APPNAME)
|
||||
datadir = os.path.join(os.environ['XDG_CONFIG_HOME'], APPNAME)
|
||||
except KeyError:
|
||||
dataFolder = os.path.join(os.environ['HOME'], '.config', APPNAME)
|
||||
datadir = os.path.join(os.environ['HOME'], '.config', APPNAME)
|
||||
|
||||
# Migrate existing data to the proper location
|
||||
# if this is an existing install
|
||||
try:
|
||||
move(os.path.join(os.environ['HOME'], '.%s' % APPNAME), dataFolder)
|
||||
move(dataFolder, datadir)
|
||||
dataFolder = datadir + os.path.sep
|
||||
logger.info('Moving data folder to %s', dataFolder)
|
||||
except IOError:
|
||||
# Old directory may not exist.
|
||||
pass
|
||||
dataFolder = dataFolder + os.path.sep
|
||||
|
||||
return dataFolder
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user