mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-02-07 08:46:21 +01:00
44 lines
1.4 KiB
Python
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()
|