aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/tools/__init__.py')
-rw-r--r--src/ee/tools/__init__.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/ee/tools/__init__.py b/src/ee/tools/__init__.py
index 112e306..0d4ef14 100644
--- a/src/ee/tools/__init__.py
+++ b/src/ee/tools/__init__.py
@@ -1,4 +1,6 @@
+import argparse
import os.path
+import sys
from pathlib import Path
from typing import Union
@@ -34,3 +36,34 @@ def mk_dirs(path: Union[str, Path]):
if not os.path.isdir(dirname):
os.mkdir(dirname)
+
+
+def add_default_argparse_group(parser: argparse.ArgumentParser):
+ group = parser.add_argument_group("common")
+
+ # Ideally these would not be shown when the default output is shown (for example when missing a required argument),
+ # only when --help is given.
+
+ group.add_argument("-v", "--verbose",
+ help="Verbose output",
+ dest="verbose", action="store_const", const=True)
+
+ group.add_argument("--log",
+ help="Set log level",
+ choices=["warn", "info", "debug"],
+ dest="log",
+ metavar="LEVEL")
+
+
+def process_default_argparse_group(args):
+ if args.verbose is not None and args.log is not None:
+ print("Can't specify both -v and --log", file=sys.stderr)
+ sys.exit(1)
+
+ log_level = args.log
+ if args.verbose:
+ log_level = "debug"
+
+ log_level = log_level if log_level is not None else "info"
+
+ log.set_level(log_level)