--forcerender, --check-tiles, and --no-tile-checks now work
This commit is contained in:
@@ -269,6 +269,32 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
|
|||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# Final validation steps and creation of the destination directory
|
# Final validation steps and creation of the destination directory
|
||||||
|
|
||||||
|
# Override some render configdict options depending on one-time command line
|
||||||
|
# modifiers
|
||||||
|
if (
|
||||||
|
bool(options.forcerender) +
|
||||||
|
bool(options.checktiles) +
|
||||||
|
bool(options.notilechecks)
|
||||||
|
) > 1:
|
||||||
|
logging.error("You cannot specify more than one of --forcerender, "+
|
||||||
|
"--check-tiles, and --no-tile-checks. These options conflict.")
|
||||||
|
parser.print_help()
|
||||||
|
return 1
|
||||||
|
if options.forcerender:
|
||||||
|
logging.info("Forcerender mode activated. ALL tiles will be rendered")
|
||||||
|
for render in config['renders'].itervalues():
|
||||||
|
render['renderchecks'] = 2
|
||||||
|
elif options.checktiles:
|
||||||
|
logging.info("Checking all tiles for updates manually.")
|
||||||
|
for render in config['renders'].itervalues():
|
||||||
|
render['renderchecks'] = 1
|
||||||
|
elif options.notilechecks:
|
||||||
|
logging.info("Disabling all tile mtime checks. Only rendering tiles "+
|
||||||
|
"that need updating since last render")
|
||||||
|
for render in config['renders'].itervalues():
|
||||||
|
render['renderchecks'] = 0
|
||||||
|
|
||||||
if not config['renders']:
|
if not config['renders']:
|
||||||
logging.error("You must specify at least one render in your config file. See the docs if you're having trouble")
|
logging.error("You must specify at least one render in your config file. See the docs if you're having trouble")
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -44,6 +44,18 @@ class MultiWorldParser(object):
|
|||||||
def set_config_item(self, itemname, itemvalue):
|
def set_config_item(self, itemname, itemvalue):
|
||||||
self._config_state[itemname] = itemvalue
|
self._config_state[itemname] = itemvalue
|
||||||
|
|
||||||
|
def set_renders_default(self, settingname, newdefault):
|
||||||
|
"""This method sets the default for one of the settings of the "renders"
|
||||||
|
dictionary. This is hard-coded to expect a "renders" setting in the
|
||||||
|
settings definition, and for its validator to be a dictValidator with
|
||||||
|
its valuevalidator to be a configDictValidator
|
||||||
|
|
||||||
|
"""
|
||||||
|
# If the structure of settingsDefinitions changes, you'll need to change
|
||||||
|
# this to find the proper place to find the settings dictionary
|
||||||
|
render_settings = self._settings['renders'].validator.valuevalidator.config
|
||||||
|
render_settings[settingname].default = newdefault
|
||||||
|
|
||||||
def parse(self, settings_file):
|
def parse(self, settings_file):
|
||||||
"""Reads in the named file and parses it, storing the results in an
|
"""Reads in the named file and parses it, storing the results in an
|
||||||
internal state awating to be validated and returned upon call to
|
internal state awating to be validated and returned upon call to
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class Setting(object):
|
|||||||
def validateWorldPath(worldpath):
|
def validateWorldPath(worldpath):
|
||||||
abs_path = os.path.abspath(worldpath)
|
abs_path = os.path.abspath(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 %r. 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
|
||||||
|
|
||||||
|
|
||||||
@@ -53,9 +53,11 @@ def validateNorthDirection(direction):
|
|||||||
elif isinstance(direction, str):
|
elif isinstance(direction, str):
|
||||||
direction = direction.lower().replace("-","").replace("_","")
|
direction = direction.lower().replace("-","").replace("_","")
|
||||||
if direction == "upperleft": intdir = UPPER_LEFT
|
if direction == "upperleft": intdir = UPPER_LEFT
|
||||||
if direction == "upperright": intdir = UPPER_RIGHT
|
elif direction == "upperright": intdir = UPPER_RIGHT
|
||||||
if direction == "lowerright": intdir = LOWER_RIGHT
|
elif direction == "lowerright": intdir = LOWER_RIGHT
|
||||||
if direction == "lowerleft": intdir = LOWER_LEFT
|
elif direction == "lowerleft": intdir = LOWER_LEFT
|
||||||
|
else:
|
||||||
|
raise ValidationException("'%s' is not a valid north direction" % direction)
|
||||||
if intdir < 0 or intdir > 3:
|
if intdir < 0 or intdir > 3:
|
||||||
raise ValidationException("%r is not a valid north direction" % direction)
|
raise ValidationException("%r is not a valid north direction" % direction)
|
||||||
return intdir
|
return intdir
|
||||||
|
|||||||
Reference in New Issue
Block a user