0

validated paths are run through os.path.expandvars()

Now one can use vars in config file paths, which eases the transition
from command line setups to config file setups.
This commit is contained in:
Andrew Brown
2012-05-25 15:31:27 -04:00
parent fc84f8c892
commit 98121dd960

View File

@@ -17,6 +17,12 @@ class Setting(object):
self.validator = validator self.validator = validator
self.default = default self.default = default
def expand_path(p):
p = os.path.expanduser(p)
p = os.path.expandvars(p)
p = os.path.abspath(p)
return p
def checkBadEscape(s): def checkBadEscape(s):
fixed = False fixed = False
fixed_string = s fixed_string = s
@@ -67,7 +73,7 @@ def validateOverlays(renderlist):
def validateWorldPath(worldpath): def validateWorldPath(worldpath):
_, worldpath = checkBadEscape(worldpath) _, worldpath = checkBadEscape(worldpath)
abs_path = os.path.abspath(os.path.expanduser(worldpath)) abs_path = expand_path(worldpath)
if not os.path.exists(os.path.join(abs_path, "level.dat")): if not os.path.exists(os.path.join(abs_path, "level.dat")):
raise ValidationException("No level.dat file in '%s'. Are you sure you have the right path?" % (abs_path,)) raise ValidationException("No level.dat file in '%s'. Are you sure you have the right path?" % (abs_path,))
return abs_path return abs_path
@@ -158,7 +164,7 @@ def validateOptImg(opt):
def validateTexturePath(path): def validateTexturePath(path):
# Expand user dir in directories strings # Expand user dir in directories strings
path = os.path.expanduser(path) path = expand_path(path)
# TODO assert this path exists? # TODO assert this path exists?
return path return path
@@ -184,7 +190,7 @@ def validateOutputDir(d):
_, d = checkBadEscape(d) _, d = checkBadEscape(d)
if not d.strip(): if not d.strip():
raise ValidationException("You must specify a valid output directory") raise ValidationException("You must specify a valid output directory")
return os.path.abspath(d) return expand_path(d)
def validateCrop(value): def validateCrop(value):
if len(value) != 4: if len(value) != 4: