]> git.ipfire.org Git - pbs.git/commitdiff
backend: Launch Pakfire with its own context
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 3 Nov 2024 14:10:58 +0000 (14:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 3 Nov 2024 14:10:58 +0000 (14:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/__init__.py
src/buildservice/config.py

index b9efad0a3f352d7fcf0fc1c924e985ff87fde548..fc5a809eae4e06b893e08fe120cd0f083d02b1fe 100644 (file)
@@ -48,9 +48,6 @@ from .__version__ import VERSION as __version__
 from .decorators import *
 from .constants import *
 
-# Set the cache path
-pakfire.set_cache_path("/pub/pakfire/.cache")
-
 class Backend(object):
        version = __version__
 
index 664e1646956ee44baa7ce9e4ed86b41652745dbb..6f010ec9eb0815ada94536efc0db6646c4c1239c 100644 (file)
@@ -59,17 +59,6 @@ class PakfireConfig(base.Object):
 
                return buffer.getvalue()
 
-       def _log(self, level, message):
-               # Remove any trailing newline (but only one)
-               if message:
-                       message = message.removesuffix("\n")
-
-               # Log to the logger if configured
-               if self.logger:
-                       return self.logger(level, message)
-
-               return log.log(level, message)
-
        # Repositories
 
        def add_repo(self, repo):
@@ -84,6 +73,16 @@ class PakfireConfig(base.Object):
        # Context
 
        async def __aenter__(self):
+               # Setup a new context
+               ctx = pakfire.Ctx()
+
+               # Set the cache path
+               #ctx.cache_path = "/pub/pakfire/.cache"
+
+               # Configure the logger
+               if self.logger:
+                       ctx.set_logger(self.logger)
+
                f = io.StringIO()
 
                # Make configuration
@@ -97,7 +96,7 @@ class PakfireConfig(base.Object):
 
                # Launch a new Pakfire instance (in a separate thread)
                async with self.backend.tempdir() as d:
-                       return await asyncio.to_thread(pakfire.Pakfire, path=d, arch=self.arch, conf=f)
+                       return await asyncio.to_thread(pakfire.Pakfire, ctx=ctx, path=d, arch=self.arch, conf=f)
 
        async def __aexit__(self, type, value, traceback):
                pass
@@ -168,14 +167,14 @@ class PakfireLogger(object):
                # Register the queue with the logger
                self.log.addHandler(handler)
 
-       def __call__(self, *args, **kwargs):
-               """
-                       Logs a message
-               """
-               return self.log.log(*args, **kwargs)
-
        def __str__(self):
                """
                        Returns the entire log as a string
                """
                return "\n".join((record.getMessage() for record in self.queue))
+
+       def log(self, *args, **kwargs):
+               """
+                       Logs a message
+               """
+               return self.log.log(*args, **kwargs)