feat: rework default entries

This commit is contained in:
2023-03-15 10:26:33 +03:00
parent 9345b27aef
commit 23ca8c0cac
14 changed files with 101 additions and 116 deletions
+14 -8
View File
@@ -1,4 +1,7 @@
__all__ = ("Command",)
__all__ = (
"CommandError",
"Command",
)
import logging
@@ -8,6 +11,12 @@ from pathlib import Path
logger = logging.getLogger(">")
class CommandError(RuntimeError):
@property
def output(self):
return self.args[0].decode("utf-8").strip()
class Command:
_logger = logger
@@ -25,15 +34,12 @@ class Command:
stderr=subprocess.PIPE,
)
self._logstd(result.stdout, logging.TRACE)
self._logstd(result.stderr, logging.TRACE)
if result.returncode != 0:
self._logstd(result.stderr, logging.ERROR)
raise RuntimeError(result.stderr)
else:
self._logstd(result.stderr, logging.WARNING)
raise CommandError(result.stderr)
@classmethod
def _logstd(cls, data: bytes, level: int):
if data:
for line in data.decode("utf-8").strip().splitlines():
if line:
cls._logger.log(level, line)
output = data.decode("utf-8").strip()
cls._logger.log(level, f"\n{output}\n")