X-Git-Url: https://wylark.com/src/munter.git/blobdiff_plain/9f40b77815de6e6ee83847db32d4bf3e9fb7f6b9..b953b8e9460ee33a3997846fb1bc7dacf712ff48:/munter/munter.py?ds=sidebyside diff --git a/munter/munter.py b/munter/munter.py index 98669c5..d868349 100644 --- a/munter/munter.py +++ b/munter/munter.py @@ -12,6 +12,9 @@ A rudimentary program which implements the Munter time calculation. import sys import argparse +from . import __progname__ as progname +from . import __version__ as version + class InvalidUnitsException(Exception): pass @@ -93,16 +96,19 @@ def get_parser(): parser = argparse.ArgumentParser(description='Implementation of ' 'the Munter time calculation') + # No required args anymore, since -g overrides any requirement parser.add_argument('--distance', '-d', + default=0.0, type=float, - required=True, + required=False, help='Distance (in km, by default)') parser.add_argument('--elevation', '-e', + default=0.0, type=float, - required=True, + required=False, help='Elevation change (in m, by default)') parser.add_argument('--travel-mode', @@ -134,6 +140,20 @@ def get_parser(): required=False, help="Make output pretty"); + parser.add_argument('--gui', + '-g', + action='store_true', + default=False, + required=False, + help='Launch GUI mode (overrides --pretty)') + + parser.add_argument('--version', + '-v', + action='store_true', + default=False, + required=False, + help='Print version and exit') + return parser def main(): @@ -145,14 +165,25 @@ def main(): fitness = opts.fitness units = opts.units travel_mode = opts.travel_mode + pretty = opts.pretty + gui = opts.gui + get_version = opts.version + + if get_version: + print("%s - v%s" % (progname, version)) + return 0 time_estimate = time_calc(distance=distance, elevation=elevation, fitness=fitness, rate=travel_mode, units=units) - if opts.pretty: - print_pretty_estimate(time_estimate) + if gui: + from . import gui + gui.startup() else: - print_ugly_estimate(time_estimate) + if pretty: + print_pretty_estimate(time_estimate) + else: + print_ugly_estimate(time_estimate) return 0