From 026c896fb755b1f8566fceb8510a819ea23b42d3 Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Mon, 8 Mar 2021 14:55:47 +0300 Subject: [PATCH] chane logic for repo sign --- src/ahriman/core/repo/repo_wrapper.py | 15 +++++---------- src/ahriman/core/repository.py | 2 +- src/ahriman/core/sign/gpg_wrapper.py | 8 +++++--- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/ahriman/core/repo/repo_wrapper.py b/src/ahriman/core/repo/repo_wrapper.py index 1127583a..812fc56b 100644 --- a/src/ahriman/core/repo/repo_wrapper.py +++ b/src/ahriman/core/repo/repo_wrapper.py @@ -20,7 +20,7 @@ import logging import os -from typing import List, Optional +from typing import List from ahriman.core.exceptions import BuildFailed from ahriman.core.util import check_output @@ -29,23 +29,19 @@ from ahriman.models.repository_paths import RepositoryPaths class RepoWrapper: - def __init__(self, name: str, paths: RepositoryPaths, pgp_key: Optional[str]) -> None: + def __init__(self, name: str, paths: RepositoryPaths, sign_args: List[str]) -> None: self.logger = logging.getLogger('build_details') self.name = name self.paths = paths - self.pgp_key = pgp_key + self.sign_args = sign_args @property def repo_path(self) -> str: return os.path.join(self.paths.repository, f'{self.name}.db.tar.gz') - def _with_sign(self, cmd: List[str]) -> List[str]: - return (cmd + ['-s', '-k', self.pgp_key]) if self.pgp_key else cmd - def add(self, path: str) -> None: - cmd = self._with_sign(['repo-add']) check_output( - *cmd, '-R', self.repo_path, path, + 'repo-add', *self.sign_args, '-R', self.repo_path, path, exception=BuildFailed(path), cwd=self.paths.repository, logger=self.logger) @@ -55,9 +51,8 @@ class RepoWrapper: sign_path = f'{path}.sig' if os.path.exists(sign_path): os.remove(sign_path) - cmd = self._with_sign(['repo-remove']) check_output( - *cmd, self.repo_path, package, + 'repo-remove', *self.sign_args, self.repo_path, package, exception=BuildFailed(path), cwd=self.paths.repository, logger=self.logger) diff --git a/src/ahriman/core/repository.py b/src/ahriman/core/repository.py index 46f4d7b2..1ad04a5f 100644 --- a/src/ahriman/core/repository.py +++ b/src/ahriman/core/repository.py @@ -47,7 +47,7 @@ class Repository: self.paths.create_tree() self.sign = GPGWrapper(config) - self.wrapper = RepoWrapper(self.name, self.paths, self.sign.repository_sign_key) + self.wrapper = RepoWrapper(self.name, self.paths, self.sign.repository_sign_args) def _clear_build(self) -> None: for package in os.listdir(self.paths.sources): diff --git a/src/ahriman/core/sign/gpg_wrapper.py b/src/ahriman/core/sign/gpg_wrapper.py index 34e369b9..b89ad5d3 100644 --- a/src/ahriman/core/sign/gpg_wrapper.py +++ b/src/ahriman/core/sign/gpg_wrapper.py @@ -20,7 +20,7 @@ import logging import os -from typing import List, Optional +from typing import List from ahriman.core.configuration import Configuration from ahriman.core.exceptions import BuildFailed @@ -37,8 +37,10 @@ class GPGWrapper: self.sign = SignSettings.from_option(config.get('sign', 'enabled')) @property - def repository_sign_key(self) -> Optional[str]: - return self.key if self.sign == SignSettings.SignRepository else None + def repository_sign_args(self) -> List[str]: + if self.sign != SignSettings.SignRepository: + return [] + return ['--sign', '--key', self.key] if self.key else ['--sign'] def process(self, path: str) -> List[str]: check_output(