use argparse for command arguments
This commit is contained in:
parent
f1505037b1
commit
2baf87d7a0
34
buttond.py
34
buttond.py
|
@ -14,6 +14,7 @@ __email__ = "kevin@company235.com"
|
||||||
|
|
||||||
__status__ = "Prototype"
|
__status__ = "Prototype"
|
||||||
|
|
||||||
|
import argparse
|
||||||
import configparser
|
import configparser
|
||||||
import logging
|
import logging
|
||||||
from signal import pause
|
from signal import pause
|
||||||
|
@ -25,12 +26,26 @@ from gpiozero import Button, GPIODeviceError
|
||||||
# from gpiozero import Device
|
# from gpiozero import Device
|
||||||
# Device.pin_factory = MockFactory()
|
# Device.pin_factory = MockFactory()
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO)
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Entry point for direct execution."""
|
"""Entry point for direct execution."""
|
||||||
|
## parse the command line
|
||||||
|
args = get_command_arguments()
|
||||||
|
## configure logging
|
||||||
|
log_levels = {
|
||||||
|
0: logging.CRITICAL,
|
||||||
|
1: logging.ERROR,
|
||||||
|
2: logging.WARN,
|
||||||
|
3: logging.INFO,
|
||||||
|
4: logging.DEBUG,
|
||||||
|
}
|
||||||
|
if args.verbosity is None:
|
||||||
|
args.verbosity = 0 if args.quiet else 3
|
||||||
|
logging.basicConfig(level=log_levels.get(args.verbosity, logging.DEBUG))
|
||||||
|
## output header
|
||||||
|
print(f"Version: {__version__}\t{__copyright__}")
|
||||||
## run the event loop
|
## run the event loop
|
||||||
try:
|
try:
|
||||||
pause()
|
pause()
|
||||||
|
@ -38,6 +53,23 @@ def main():
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
def get_command_arguments():
|
||||||
|
"""Parse the command line arguments."""
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='Exec Hog4 comment macros on RasPi GPIO activity.',
|
||||||
|
epilog=__copyright__)
|
||||||
|
parser.add_argument('-q', '--quiet', action='store_true',
|
||||||
|
help="sets the default log level to 0, otherwise 3.")
|
||||||
|
parser.add_argument("-v", dest="verbosity",
|
||||||
|
action="count", default=None,
|
||||||
|
help="verbosity (between 1-4 with more printing more "
|
||||||
|
" verbose logging). "
|
||||||
|
"CRITICAL=0, ERROR=1, WARN=2, INFO=3, DEBUG=4")
|
||||||
|
parser.add_argument('--version', action='version',
|
||||||
|
version=f'%(prog)s {__version__}')
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def activate(macro):
|
def activate(macro):
|
||||||
"""Sanitize user configured macros."""
|
"""Sanitize user configured macros."""
|
||||||
if macro is None:
|
if macro is None:
|
||||||
|
|
Loading…
Reference in New Issue