Source code for pytoolbox.linux

import configparser, os, re

__all__ = ['CONFIG_PREFIX', 'DRIVER_IN_KERNEL', 'DRIVER_HAS_MODULE', 'get_kernel_config']

CONFIG_PREFIX = re.compile(r'^config_')
DRIVER_IN_KERNEL = 'y'
DRIVER_HAS_MODULE = 'm'


[docs]def get_kernel_config(release=None, fail=True): """ Return a JSON string with the GNU/Linux Kernel configuration. **Example usage** >>> config = get_kernel_config(fail=False) >>> type(config) <class 'dict'> >>> not config or 'memory' in config True Error handling: >>> get_kernel_config('0.0.1-generic', fail=False) {} """ try: with open(f'/boot/config-{release or os.uname().release}', encoding='utf-8') as f: config = configparser.ConfigParser() config.read_string(f'[kernel]{f.read()}') except IOError: if fail: raise return {} return {CONFIG_PREFIX.sub('', k): v for k, v in config.items('kernel')}