slpkg/slpkg/logging_deps.py
2023-04-26 20:07:21 +03:00

44 lines
1.4 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from slpkg.utilities import Utilities
from slpkg.binaries.required import Required
from slpkg.sbos.dependencies import Requires
from slpkg.models.models import LogsDependencies
from slpkg.models.models import session as Session
class LoggingDeps:
""" Logging installed dependencies. """
def __init__(self, flags: list, data: dict):
__slots__ = 'flags', 'data'
self.flags: list = flags
self.data: dict = data
self.utils = Utilities()
self.session = Session
self.option_for_binaries: bool = self.utils.is_option(
['-B', '--bin-repo='], flags)
def logging(self, name: str) -> None:
exist = self.session.query(LogsDependencies.name).filter(
LogsDependencies.name == name).first()
if self.option_for_binaries:
requires: list = Required(self.data, name).resolve()
else:
requires: list = Requires(self.data, name).resolve()
# Update the dependencies if exist else create it.
if exist:
self.session.query(
LogsDependencies).filter(
LogsDependencies.name == name).update(
{LogsDependencies.requires: ' '.join(requires)})
elif requires:
deps: list = LogsDependencies(name=name, requires=' '.join(requires))
self.session.add(deps)
self.session.commit()