added several new files
This commit is contained in:
@@ -0,0 +1 @@
|
||||
__pycache__/
|
||||
@@ -0,0 +1,18 @@
|
||||
import argparse
|
||||
from functools import cached_property
|
||||
|
||||
class ArgumentsParser:
|
||||
@cached_property
|
||||
def parser(self):
|
||||
parser = argparse.ArgumentParser(
|
||||
prog=__file__,
|
||||
description='Trigger based CPU governor auto adjust program.',
|
||||
epilog='Happy CPU controlling'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-c', '--config',
|
||||
type=str,
|
||||
required=False,
|
||||
default='cpu_governor_auto_adjust.xml',
|
||||
)
|
||||
return parser.parse_args()
|
||||
@@ -0,0 +1,22 @@
|
||||
from pathlib import Path
|
||||
from lxml import etree
|
||||
from functools import cached_property
|
||||
from arguments import ArgumentsParser
|
||||
|
||||
|
||||
class Config:
|
||||
def __init__(self, basepath: Path) -> None:
|
||||
self.basepath = basepath
|
||||
self.config = ArgumentsParser().parser.config
|
||||
|
||||
@cached_property
|
||||
def root(self) -> etree.ElementTree:
|
||||
return etree.parse(self.basepath / self.config)
|
||||
|
||||
@cached_property
|
||||
def app_root(self) -> etree.Element:
|
||||
return self.root.xpath('/cpuGovernorAutoAdjust').pop()
|
||||
|
||||
@cached_property
|
||||
def loglevel(self) -> str:
|
||||
return self.app_root.xpath('logLevel').pop().text
|
||||
Regular → Executable
+15
@@ -1,2 +1,17 @@
|
||||
#!/usr/bin/python3
|
||||
from pathlib import Path
|
||||
from logger import getLogger
|
||||
from triggers.roon import RoonTrigger
|
||||
from config import Config
|
||||
|
||||
|
||||
def main():
|
||||
basepath = Path(__file__).parent.resolve()
|
||||
config = Config(basepath)
|
||||
log = getLogger('main', loglevel=config.loglevel.upper())
|
||||
log.info("starting")
|
||||
new_trigger = RoonTrigger(config)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<cpuGovernorAutoAdjust>
|
||||
<logLevel>Debug</logLevel>
|
||||
</cpuGovernorAutoAdjust>
|
||||
@@ -0,0 +1,33 @@
|
||||
import logging
|
||||
from logging import Logger
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def getLogger(name: str = 'root', loglevel: str = 'INFO') -> Logger:
|
||||
logger = logging.getLogger(name)
|
||||
|
||||
# if logger 'name' already exists, return it to avoid logging duplicate
|
||||
# messages by attaching multiple handlers of the same type
|
||||
if logger.handlers:
|
||||
return logger
|
||||
# if logger 'name' does not already exist, create it and attach handlers
|
||||
else:
|
||||
# set logLevel to loglevel or to INFO if requested level is incorrect
|
||||
loglevel = getattr(logging, loglevel.upper(), logging.INFO)
|
||||
logger.setLevel(loglevel)
|
||||
if loglevel == logging.DEBUG:
|
||||
fmt = '%(asctime)s %(levelname)-8s %(message)s (%(filename)s)'
|
||||
else:
|
||||
fmt = '%(asctime)s %(levelname)-8s %(message)s'
|
||||
fmt_date = '%Y-%m-%dT%T'
|
||||
formatter = logging.Formatter(fmt, fmt_date)
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(formatter)
|
||||
logger.addHandler(handler)
|
||||
|
||||
if logger.name == 'root':
|
||||
logger.warning('Running: %s %s',
|
||||
os.path.basename(sys.argv[0]),
|
||||
' '.join(sys.argv[1:]))
|
||||
return logger
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from logger import getLogger
|
||||
from config import Config
|
||||
|
||||
class Trigger:
|
||||
def __init__(self, config: Config) -> None:
|
||||
self.log = getLogger('trigger', loglevel=config.loglevel.upper())
|
||||
self.log.info(f'initializing {self.__class__.__name__}')
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from trigger import Trigger
|
||||
from config import Config
|
||||
|
||||
class RoonTrigger(Trigger):
|
||||
def __init__(self, config: Config) -> None:
|
||||
super().__init__(config)
|
||||
|
||||
Reference in New Issue
Block a user