solaar: clean up gtk code

This commit is contained in:
Peter F. Patel-Schneider 2022-11-09 05:46:36 -05:00
parent 7874886a61
commit beb9dfdab8
1 changed files with 15 additions and 16 deletions

View File

@ -21,6 +21,8 @@
import importlib
import logging
import os.path
import signal
import sys
import tempfile
from logging import INFO as _INFO
@ -44,7 +46,6 @@ def _require(module, os_package, gi=None, gi_package=None, gi_version=None):
gi.require_version(gi_package, gi_version)
return importlib.import_module(module)
except (ImportError, ValueError):
import sys
sys.exit('%s: missing required system package %s' % (NAME, os_package))
@ -122,27 +123,22 @@ def _parse_arguments():
# On first SIGINT, dump threads to stderr; on second, exit
def _handlesigint(signal, stack):
def _handlesig(signl, stack):
import faulthandler
import signal
import sys
signal.signal(signal.SIGINT, signal.SIG_DFL)
signal.signal(signal.SIGTERM, signal.SIG_DFL)
if _log.isEnabledFor(_INFO):
faulthandler.dump_traceback()
sys.exit('%s: exit due to keyboard interrupt' % (NAME.lower()))
if signl == int(signal.SIGINT):
if _log.isEnabledFor(_INFO):
faulthandler.dump_traceback()
sys.exit('%s: exit due to keyboard interrupt' % (NAME.lower()))
else:
sys.exit('')
def main():
_require('pyudev', 'python3-pyudev')
# handle ^C in console
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
signal.signal(signal.SIGINT, _handlesigint)
args = _parse_arguments()
if not args:
return
@ -153,6 +149,11 @@ def main():
gi = _require('gi', 'python3-gi (in Ubuntu) or python3-gobject (in Fedora)')
_require('gi.repository.Gtk', 'gir1.2-gtk-3.0', gi, 'Gtk', '3.0')
# handle ^C in console
signal.signal(signal.SIGINT, signal.SIG_DFL)
signal.signal(signal.SIGINT, _handlesig)
signal.signal(signal.SIGTERM, _handlesig)
udev_file = '42-logitech-unify-permissions.rules'
if _log.isEnabledFor(_WARNING) \
and not os.path.isfile('/etc/udev/rules.d/' + udev_file) \
@ -178,8 +179,6 @@ def main():
# main UI event loop
ui.run_loop(listener.start_all, listener.stop_all, args.window != 'only', args.window != 'hide')
except Exception:
import sys
from traceback import format_exc
sys.exit('%s: error: %s' % (NAME.lower(), format_exc()))