solaar: clean up gtk code
This commit is contained in:
parent
7874886a61
commit
beb9dfdab8
|
@ -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 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()))
|
||||
|
||||
|
|
Loading…
Reference in New Issue