genPOI: replace optparse with argparse
Maybe one day we'll use actual subparsers but today is not that day.
This commit is contained in:
@@ -29,7 +29,7 @@ import urllib.error
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
from multiprocessing import Pool
|
from multiprocessing import Pool
|
||||||
from optparse import OptionParser
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
from overviewer_core import configParser, logger, nbt, world
|
from overviewer_core import configParser, logger, nbt, world
|
||||||
from overviewer_core.files import FileReplacer, get_fs_caps
|
from overviewer_core.files import FileReplacer, get_fs_caps
|
||||||
@@ -438,37 +438,33 @@ def create_marker_from_filter_result(poi, result):
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
if os.path.basename(sys.argv[0]) == "genPOI.py":
|
||||||
if os.path.basename(sys.argv[0]) == """genPOI.py""":
|
prog_name = "genPOI.py"
|
||||||
helptext = """genPOI.py
|
|
||||||
%prog --config=<config file> [options]"""
|
|
||||||
else:
|
else:
|
||||||
helptext = """genPOI
|
prog_name = sys.argv[0] + " --genpoi"
|
||||||
%prog --genpoi --config=<config file> [options]"""
|
|
||||||
|
|
||||||
logger.configure()
|
logger.configure()
|
||||||
|
|
||||||
parser = OptionParser(usage=helptext)
|
parser = ArgumentParser(prog=prog_name)
|
||||||
parser.add_option("-c", "--config", dest="config", action="store",
|
parser.add_argument("-c", "--config", dest="config", action="store", required=True,
|
||||||
help="Specify the config file to use.")
|
help="Specify the config file to use.")
|
||||||
parser.add_option("-q", "--quiet", dest="quiet", action="count",
|
parser.add_argument("-q", "--quiet", dest="quiet", action="count",
|
||||||
help="Reduce logging output")
|
help="Reduce logging output")
|
||||||
parser.add_option("--skip-scan", dest="skipscan", action="store_true",
|
parser.add_argument("--skip-scan", dest="skipscan", action="store_true",
|
||||||
help="Skip scanning for entities when using GenPOI")
|
help="Skip scanning for entities when using GenPOI")
|
||||||
parser.add_option("--skip-players", dest="skipplayers", action="store_true",
|
parser.add_argument("--skip-players", dest="skipplayers", action="store_true",
|
||||||
help="Skip getting player data when using GenPOI")
|
help="Skip getting player data when using GenPOI")
|
||||||
|
|
||||||
options, args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if not options.config:
|
|
||||||
parser.print_help()
|
|
||||||
return
|
|
||||||
|
|
||||||
if options.quiet and options.quiet > 0:
|
if args.quiet and args.quiet > 0:
|
||||||
logger.configure(logging.WARN, False)
|
logger.configure(logging.WARN, False)
|
||||||
|
|
||||||
# Parse the config file
|
# Parse the config file
|
||||||
mw_parser = configParser.MultiWorldParser()
|
mw_parser = configParser.MultiWorldParser()
|
||||||
mw_parser.parse(options.config)
|
try:
|
||||||
|
mw_parser.parse(args.config)
|
||||||
|
except configParser.MissingConfigException:
|
||||||
|
parser.error("The configuration file '{}' does not exist.".format(args.config))
|
||||||
try:
|
try:
|
||||||
config = mw_parser.get_validated_config()
|
config = mw_parser.get_validated_config()
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -532,16 +528,16 @@ def main():
|
|||||||
for name, filter_name, __, __, __, __ in filters)
|
for name, filter_name, __, __, __, __ in filters)
|
||||||
|
|
||||||
# apply filters to regionsets
|
# apply filters to regionsets
|
||||||
if not options.skipscan:
|
if not args.skipscan:
|
||||||
# group filters by rset
|
# group filters by rset
|
||||||
def keyfunc(x):
|
def keyfunc(x):
|
||||||
return x[3]
|
return x[3]
|
||||||
sfilters = sorted(filters, key=keyfunc)
|
sfilters = sorted(filters, key=keyfunc)
|
||||||
for rset, rset_filters in itertools.groupby(sfilters, keyfunc):
|
for rset, rset_filters in itertools.groupby(sfilters, keyfunc):
|
||||||
handleEntities(rset, config, options.config, list(rset_filters), markers)
|
handleEntities(rset, config, args.config, list(rset_filters), markers)
|
||||||
|
|
||||||
# apply filters to players
|
# apply filters to players
|
||||||
if not options.skipplayers:
|
if not args.skipplayers:
|
||||||
PlayerDict.load_cache(destdir)
|
PlayerDict.load_cache(destdir)
|
||||||
|
|
||||||
# group filters by worldpath, so we only search for players once per
|
# group filters by worldpath, so we only search for players once per
|
||||||
@@ -565,7 +561,7 @@ def main():
|
|||||||
logging.info("Done handling POIs")
|
logging.info("Done handling POIs")
|
||||||
logging.info("Writing out javascript files")
|
logging.info("Writing out javascript files")
|
||||||
|
|
||||||
if not options.skipplayers:
|
if not args.skipplayers:
|
||||||
PlayerDict.save_cache(destdir)
|
PlayerDict.save_cache(destdir)
|
||||||
|
|
||||||
with open(os.path.join(destdir, "markersDB.js"), "w") as output:
|
with open(os.path.join(destdir, "markersDB.js"), "w") as output:
|
||||||
|
|||||||
Reference in New Issue
Block a user