2016-12-04 08:02:40 +01:00
|
|
|
"""Configuration handling
|
|
|
|
|
|
|
|
This module provides configuration information (loaded modules,
|
|
|
|
module parameters, etc.) to all other components
|
|
|
|
"""
|
|
|
|
|
2016-11-05 07:54:36 +01:00
|
|
|
import argparse
|
|
|
|
|
2016-12-03 20:38:54 +01:00
|
|
|
MODULE_HELP = ""
|
2016-11-05 14:26:02 +01:00
|
|
|
|
2016-12-04 08:02:40 +01:00
|
|
|
def create_parser():
|
|
|
|
"""Create the argument parser"""
|
|
|
|
parser = argparse.ArgumentParser(description="display system data in the i3bar")
|
|
|
|
parser.add_argument("-m", "--modules", nargs="+", default=[],
|
|
|
|
help=MODULE_HELP)
|
|
|
|
return parser
|
|
|
|
|
2016-11-05 07:54:36 +01:00
|
|
|
class Config(object):
|
2016-12-04 08:02:40 +01:00
|
|
|
"""Top-level configuration class
|
|
|
|
|
|
|
|
Parses commandline arguments and provides non-module
|
|
|
|
specific configuration information.
|
|
|
|
"""
|
|
|
|
def __init__(self, args=None):
|
|
|
|
parser = create_parser()
|
|
|
|
self._args = parser.parse_args(args if args else [])
|
2016-11-05 08:11:08 +01:00
|
|
|
|
|
|
|
def modules(self):
|
2016-12-04 08:02:40 +01:00
|
|
|
"""Return a list of all activated modules"""
|
|
|
|
return [{
|
2016-12-03 20:54:57 +01:00
|
|
|
"module": x.split(":")[0],
|
2016-12-04 08:02:40 +01:00
|
|
|
"name": x if not ":" in x else x.split(":")[1],
|
|
|
|
} for x in self._args.modules]
|
2016-11-05 08:11:08 +01:00
|
|
|
|
2016-11-05 07:54:36 +01:00
|
|
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|