options with default args are now seeded in the globals dict
This commit is contained in:
@@ -24,6 +24,10 @@ class ConfigOptionParser(object):
|
|||||||
print "%s: %r" % (n, self.configResults.__dict__[n])
|
print "%s: %r" % (n, self.configResults.__dict__[n])
|
||||||
|
|
||||||
def add_option(self, *args, **kwargs):
|
def add_option(self, *args, **kwargs):
|
||||||
|
|
||||||
|
if kwargs.get("configFileOnly", False) and kwargs.get("commandLineOnly", False):
|
||||||
|
raise Exception(args, "configFileOnly and commandLineOnly are mututally exclusive")
|
||||||
|
|
||||||
self.configVars.append(kwargs.copy())
|
self.configVars.append(kwargs.copy())
|
||||||
|
|
||||||
if not kwargs.get("configFileOnly", False):
|
if not kwargs.get("configFileOnly", False):
|
||||||
@@ -40,7 +44,6 @@ class ConfigOptionParser(object):
|
|||||||
# first, load the results from the command line:
|
# first, load the results from the command line:
|
||||||
options, args = self.cmdParser.parse_args()
|
options, args = self.cmdParser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
# second, use these values to seed the locals dict
|
# second, use these values to seed the locals dict
|
||||||
l = dict()
|
l = dict()
|
||||||
g = dict()
|
g = dict()
|
||||||
@@ -48,25 +51,34 @@ class ConfigOptionParser(object):
|
|||||||
n = a['dest']
|
n = a['dest']
|
||||||
if a.get('configFileOnly', False): continue
|
if a.get('configFileOnly', False): continue
|
||||||
if a.get('commandLineOnly', False): continue
|
if a.get('commandLineOnly', False): continue
|
||||||
if getattr(options, n) != None:
|
v = getattr(options, n)
|
||||||
l[n] = getattr(options, n)
|
if v != None:
|
||||||
|
#print "seeding %s with %s" % (n, v)
|
||||||
|
l[n] = v
|
||||||
|
else:
|
||||||
|
# if this has a default, use that to seed the globals dict
|
||||||
|
if a.get("default", None): g[n] = a['default']
|
||||||
g['args'] = args
|
g['args'] = args
|
||||||
|
|
||||||
try:
|
try:
|
||||||
execfile(self.configFile, g, l)
|
execfile(self.configFile, g, l)
|
||||||
except NameError, ex:
|
except NameError, ex:
|
||||||
pass
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
print "\nError parsing %s. Please check the trackback above" % self.configFile
|
||||||
|
sys.exit(1)
|
||||||
except SyntaxError, ex:
|
except SyntaxError, ex:
|
||||||
print "Error parsing %s. Please check the trackback below:" % self.configFile
|
|
||||||
import traceback
|
import traceback
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
tb = sys.exc_info()[2]
|
tb = sys.exc_info()[2]
|
||||||
#print tb.tb_frame.f_code.co_filename
|
#print tb.tb_frame.f_code.co_filename
|
||||||
|
print "\nError parsing %s. Please check the trackback above" % self.configFile
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
#print l.keys()
|
#print l.keys()
|
||||||
|
|
||||||
configResults = OptionsResults()
|
configResults = OptionsResults()
|
||||||
# first, load the results from the config file:
|
# third, load the results from the config file:
|
||||||
for a in self.configVars:
|
for a in self.configVars:
|
||||||
n = a['dest']
|
n = a['dest']
|
||||||
if a.get('commandLineOnly', False):
|
if a.get('commandLineOnly', False):
|
||||||
|
|||||||
8
gmap.py
8
gmap.py
@@ -46,17 +46,17 @@ def main():
|
|||||||
cpus = 1
|
cpus = 1
|
||||||
parser = ConfigOptionParser(usage=helptext, config="settings.py")
|
parser = ConfigOptionParser(usage=helptext, config="settings.py")
|
||||||
parser.add_option("-p", "--processes", dest="procs", help="How many worker processes to start. Default %s" % cpus, default=cpus, action="store", type="int")
|
parser.add_option("-p", "--processes", dest="procs", help="How many worker processes to start. Default %s" % cpus, default=cpus, action="store", type="int")
|
||||||
parser.add_option("-z", "--zoom", dest="zoom", help="Sets the zoom level manually instead of calculating it. This can be useful if you have outlier chunks that make your world too big. This value will make the highest zoom level contain (2**ZOOM)^2 tiles", action="store", type="int")
|
parser.add_option("-z", "--zoom", dest="zoom", help="Sets the zoom level manually instead of calculating it. This can be useful if you have outlier chunks that make your world too big. This value will make the highest zoom level contain (2**ZOOM)^2 tiles", action="store", type="int", configFileOnly=True)
|
||||||
parser.add_option("-d", "--delete", dest="delete", help="Clear all caches. Next time you render your world, it will have to start completely over again. This is probably not a good idea for large worlds. Use this if you change texture packs and want to re-render everything.", action="store_true", commandLineOnly=True)
|
parser.add_option("-d", "--delete", dest="delete", help="Clear all caches. Next time you render your world, it will have to start completely over again. This is probably not a good idea for large worlds. Use this if you change texture packs and want to re-render everything.", action="store_true", commandLineOnly=True)
|
||||||
parser.add_option("--cachedir", dest="cachedir", help="Sets the directory where the Overviewer will save chunk images, which is an intermediate step before the tiles are generated. You must use the same directory each time to gain any benefit from the cache. If not set, this defaults to your world directory.")
|
parser.add_option("--cachedir", dest="cachedir", help="Sets the directory where the Overviewer will save chunk images, which is an intermediate step before the tiles are generated. You must use the same directory each time to gain any benefit from the cache. If not set, this defaults to your world directory.")
|
||||||
parser.add_option("--chunklist", dest="chunklist", help="A file containing, on each line, a path to a chunkfile to update. Instead of scanning the world directory for chunks, it will just use this list. Normal caching rules still apply.")
|
parser.add_option("--chunklist", dest="chunklist", help="A file containing, on each line, a path to a chunkfile to update. Instead of scanning the world directory for chunks, it will just use this list. Normal caching rules still apply.")
|
||||||
parser.add_option("--rendermode", dest="rendermode", help="Specifies the render type: normal (default), lighting, night, or spawn.", type="choice", choices=["normal", "lighting", "night", "spawn"], required=True, default="normal")
|
parser.add_option("--rendermode", dest="rendermode", help="Specifies the render type: normal (default), lighting, night, or spawn.", type="choice", choices=["normal", "lighting", "night", "spawn"], required=True, default="normal")
|
||||||
parser.add_option("--imgformat", dest="imgformat", help="The image output format to use. Currently supported: png(default), jpg. NOTE: png will always be used as the intermediate image format.")
|
parser.add_option("--imgformat", dest="imgformat", help="The image output format to use. Currently supported: png(default), jpg. NOTE: png will always be used as the intermediate image format.", configFileOnly=True )
|
||||||
parser.add_option("--optimize-img", dest="optimizeimg", help="If using png, perform image file size optimizations on the output. Specify 1 for pngcrush, 2 for pngcrush+optipng+advdef. This may double (or more) render times, but will produce up to 30% smaller images. NOTE: requires corresponding programs in $PATH or %PATH%")
|
parser.add_option("--optimize-img", dest="optimizeimg", help="If using png, perform image file size optimizations on the output. Specify 1 for pngcrush, 2 for pngcrush+optipng+advdef. This may double (or more) render times, but will produce up to 30% smaller images. NOTE: requires corresponding programs in $PATH or %PATH%", configFileOnly=True)
|
||||||
parser.add_option("-q", "--quiet", dest="quiet", action="count", default=0, help="Print less output. You can specify this option multiple times.")
|
parser.add_option("-q", "--quiet", dest="quiet", action="count", default=0, help="Print less output. You can specify this option multiple times.")
|
||||||
parser.add_option("-v", "--verbose", dest="verbose", action="count", default=0, help="Print more output. You can specify this option multiple times.")
|
parser.add_option("-v", "--verbose", dest="verbose", action="count", default=0, help="Print more output. You can specify this option multiple times.")
|
||||||
parser.add_option("--skip-js", dest="skipjs", action="store_true", help="Don't output marker.js or regions.js")
|
parser.add_option("--skip-js", dest="skipjs", action="store_true", help="Don't output marker.js or regions.js")
|
||||||
parser.add_option("--display-config", dest="display_config", action="store_true", help="Display the configuration parameters, but don't render the map", commandLineOnly=True)
|
parser.add_option("--display-config", dest="display_config", action="store_true", help="Display the configuration parameters, but don't render the map. Requires all required options to be specified", commandLineOnly=True)
|
||||||
#parser.add_option("--write-config", dest="write_config", action="store_true", help="Writes out a sample config file", commandLineOnly=True)
|
#parser.add_option("--write-config", dest="write_config", action="store_true", help="Writes out a sample config file", commandLineOnly=True)
|
||||||
|
|
||||||
options, args = parser.parse_args()
|
options, args = parser.parse_args()
|
||||||
|
|||||||
Reference in New Issue
Block a user