Add -v and "one true source"-ify program name
[munter.git] / munter / munter.py
index d235866c2e10e5ed2b32d69d848fabc25d8cdf8f..d8683491f2bd899aa08e1baea82697c935ca547a 100644 (file)
@@ -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',
@@ -141,6 +147,13 @@ def get_parser():
         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():
@@ -154,6 +167,11 @@ def main():
     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)