diff options
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | man/whatmaps.pod | 2 | ||||
-rwxr-xr-x | run.py | 7 | ||||
-rw-r--r-- | setup.cfg | 3 | ||||
-rw-r--r-- | setup.py | 18 | ||||
-rwxr-xr-x | whatmaps/command.py | 9 | ||||
-rw-r--r-- | whatmaps/debiandistro.py | 26 | ||||
-rw-r--r-- | whatmaps/debianpkg.py | 2 | ||||
-rw-r--r-- | whatmaps/distro.py | 5 | ||||
-rw-r--r-- | whatmaps/redhatdistro.py | 4 | ||||
-rw-r--r-- | whatmaps/rpmpkg.py | 2 |
13 files changed, 48 insertions, 42 deletions
diff --git a/.travis.yml b/.travis.yml index 838cd99..ce0f500 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,6 @@ python: - "3.4" - "3.5" install: "pip install -r requirements.txt" -script: flake8 +script: + - flake8 + - nosetests diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dce5d92 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +check: + flake8 + nosetests3 @@ -0,0 +1,5 @@ +whatmaps 0.0.13 +--------------- +Released December 2022 +* Run without lsb python modules +* Make flake8 happy diff --git a/man/whatmaps.pod b/man/whatmaps.pod index 408e75d..c1d8d6b 100644 --- a/man/whatmaps.pod +++ b/man/whatmaps.pod @@ -26,7 +26,7 @@ prompting and with the I<--prind-cmds> option the restart commands are written t a file for later execution. On Debian systems B<whatmaps> can also be run automatically by apt-get. See -L</usr/share/doc/whatmaps/README.Debian> for details. +L<//usr/share/doc/whatmaps/README> for details. =head1 SEE ALSO @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +import sys +from whatmaps.command import run + +if __name__ == '__main__': + sys.exit(run()) @@ -3,4 +3,5 @@ cover-package=whatmaps [flake8] # E501: ignore line length -ignore=E501 +# E265: block comment should start with '# ' +ignore=E501,E265,W504
\ No newline at end of file @@ -20,18 +20,12 @@ from setuptools import setup data_files = [] -try: - import lsb_release - if (lsb_release.get_distro_information()['ID'] in ['Debian'] or - os.path.exists('/etc/debian_version')): - data_files = [('../etc/apt/apt.conf.d/', - ['apt/50whatmaps_apt']), - ('../etc/apt/apt.conf.d/', - ['apt/20services']), - ] -except ImportError: - pass - +if os.path.exists('/etc/debian_version'): + data_files = [('../etc/apt/apt.conf.d/', + ['apt/50whatmaps_apt']), + ('../etc/apt/apt.conf.d/', + ['apt/20services']), + ] setup(name="whatmaps", author='Guido Günther', diff --git a/whatmaps/command.py b/whatmaps/command.py index e28a8b9..70e0587 100755 --- a/whatmaps/command.py +++ b/whatmaps/command.py @@ -197,8 +197,8 @@ def main(argv): for pkg in pkgs: try: shared_objects += pkg.shared_objects - except PkgError: - logging.error("Cannot parse contents of %s - skipping it" % pkg.name) + except PkgError as e: + logging.error("%s - skipping package %s" % (e, pkg.name)) ret = 1 logging.debug("Found shared objects:") for so in shared_objects: @@ -257,9 +257,6 @@ def main(argv): def run(): - return(main(sys.argv)) - -if __name__ == '__main__': - sys.exit(main(sys.argv)) + return main(sys.argv) # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: diff --git a/whatmaps/debiandistro.py b/whatmaps/debiandistro.py index 4fcce54..aaa981a 100644 --- a/whatmaps/debiandistro.py +++ b/whatmaps/debiandistro.py @@ -20,11 +20,6 @@ try: except ImportError: apt_pkg = None -try: - import lsb_release -except ImportError: - lsb_release = None - import logging import os import subprocess @@ -63,8 +58,11 @@ class DebianDistro(Distro): service_blacklist = set(['kvm', 'qemu-kvm', 'qemu-system-x86']) # Per distro regex filter - service_blacklist_re = set([ - '^user@[0-9]+.service$', # Restarting systemd user service aborts the session + service_blacklist_re = set([ # Restarting these aborts the users session + "^dbus(.service)?$", + "^user@[0-9]+.service$", + "^systemd-logind.service$", + "^(g|k|light|no|sd|w|x)dm(.service)?$", ]) @classmethod @@ -116,10 +114,10 @@ class DebianDistro(Distro): aptconfig = sys.stdin.readline() if not aptconfig or aptconfig == '\n': break - if aptconfig.startswith('Whatmaps::Enable-Restart=') and \ - aptconfig.strip().split('=', 1)[1].lower() in ["true", "1"]: - logging.debug("Service restarts enabled") - whatmaps_enabled = True + if (aptconfig.startswith('Whatmaps::Enable-Restart=') and + aptconfig.strip().split('=', 1)[1].lower() in ["true", "1"]): + logging.debug("Service restarts enabled") + whatmaps_enabled = True if not whatmaps_enabled: return None @@ -140,10 +138,8 @@ class DebianDistro(Distro): def _security_update_origins(klass): "Determine security update origins from apt configuration" - if lsb_release is None: - raise PkgError("lsb_release not found, can't determine security updates") - - codename = lsb_release.get_distro_information()['CODENAME'] + with open("/etc/debian_version") as f: + codename = f.read().strip() def _subst(line): mapping = {'distro_codename': codename, diff --git a/whatmaps/debianpkg.py b/whatmaps/debianpkg.py index 0192513..0e1301f 100644 --- a/whatmaps/debianpkg.py +++ b/whatmaps/debianpkg.py @@ -22,7 +22,7 @@ from . pkg import Pkg class DebianPkg(Pkg): type = 'Debian' - _init_script_re = re.compile('/etc/init.d/[\w\-\.]') + _init_script_re = re.compile(r'/etc/init.d/[\w\-\.]') _list_contents = ['dpkg-query', '-L', '${pkg_name}'] def __init__(self, name): diff --git a/whatmaps/distro.py b/whatmaps/distro.py index 29d2dc2..d4f991b 100644 --- a/whatmaps/distro.py +++ b/whatmaps/distro.py @@ -112,6 +112,7 @@ class Distro(object): def detect(): return detect() + import whatmaps.debiandistro # noqa: E402 import whatmaps.redhatdistro # noqa: E402 @@ -129,10 +130,10 @@ def detect(): try: lsb_cmd = subprocess.Popen(['lsb_release', '--id', '-s'], stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.DEVNULL) output = lsb_cmd.communicate()[0] if not lsb_cmd.returncode: - id = output.strip() + id = output.decode().split('\n')[0].strip() except OSError: # id is None in this case pass diff --git a/whatmaps/redhatdistro.py b/whatmaps/redhatdistro.py index 4b17f3c..12336e6 100644 --- a/whatmaps/redhatdistro.py +++ b/whatmaps/redhatdistro.py @@ -23,9 +23,9 @@ from . rpmpkg import RpmPkg class RedHatDistro(Distro): - "RPM based distribution""" + """RPM based distribution""" _pkg_re = re.compile(r'(?P<pkg>[\w\-\+]+)-(?P<ver>[\w\.]+)' - '-(?P<rel>[\w\.]+)\.(?P<arch>.+)') + r'-(?P<rel>[\w\.]+)\.(?P<arch>.+)') @classmethod def pkg(klass, name): diff --git a/whatmaps/rpmpkg.py b/whatmaps/rpmpkg.py index 493dd5a..3940931 100644 --- a/whatmaps/rpmpkg.py +++ b/whatmaps/rpmpkg.py @@ -22,7 +22,7 @@ from . pkg import Pkg class RpmPkg(Pkg): type = 'RPM' - _init_script_re = re.compile('/etc/rc.d/init.d/[\w\-\.]') + _init_script_re = re.compile(r'/etc/rc.d/init.d/[\w\-\.]') _list_contents = ['rpm', '-ql', '$pkg_name'] def __init__(self, name): |