mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
chane logic for repo sign
This commit is contained in:
parent
6f67641f4c
commit
026c896fb7
@ -20,7 +20,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from typing import List, Optional
|
from typing import List
|
||||||
|
|
||||||
from ahriman.core.exceptions import BuildFailed
|
from ahriman.core.exceptions import BuildFailed
|
||||||
from ahriman.core.util import check_output
|
from ahriman.core.util import check_output
|
||||||
@ -29,23 +29,19 @@ from ahriman.models.repository_paths import RepositoryPaths
|
|||||||
|
|
||||||
class RepoWrapper:
|
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.logger = logging.getLogger('build_details')
|
||||||
self.name = name
|
self.name = name
|
||||||
self.paths = paths
|
self.paths = paths
|
||||||
self.pgp_key = pgp_key
|
self.sign_args = sign_args
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def repo_path(self) -> str:
|
def repo_path(self) -> str:
|
||||||
return os.path.join(self.paths.repository, f'{self.name}.db.tar.gz')
|
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:
|
def add(self, path: str) -> None:
|
||||||
cmd = self._with_sign(['repo-add'])
|
|
||||||
check_output(
|
check_output(
|
||||||
*cmd, '-R', self.repo_path, path,
|
'repo-add', *self.sign_args, '-R', self.repo_path, path,
|
||||||
exception=BuildFailed(path),
|
exception=BuildFailed(path),
|
||||||
cwd=self.paths.repository,
|
cwd=self.paths.repository,
|
||||||
logger=self.logger)
|
logger=self.logger)
|
||||||
@ -55,9 +51,8 @@ class RepoWrapper:
|
|||||||
sign_path = f'{path}.sig'
|
sign_path = f'{path}.sig'
|
||||||
if os.path.exists(sign_path):
|
if os.path.exists(sign_path):
|
||||||
os.remove(sign_path)
|
os.remove(sign_path)
|
||||||
cmd = self._with_sign(['repo-remove'])
|
|
||||||
check_output(
|
check_output(
|
||||||
*cmd, self.repo_path, package,
|
'repo-remove', *self.sign_args, self.repo_path, package,
|
||||||
exception=BuildFailed(path),
|
exception=BuildFailed(path),
|
||||||
cwd=self.paths.repository,
|
cwd=self.paths.repository,
|
||||||
logger=self.logger)
|
logger=self.logger)
|
||||||
|
@ -47,7 +47,7 @@ class Repository:
|
|||||||
self.paths.create_tree()
|
self.paths.create_tree()
|
||||||
|
|
||||||
self.sign = GPGWrapper(config)
|
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:
|
def _clear_build(self) -> None:
|
||||||
for package in os.listdir(self.paths.sources):
|
for package in os.listdir(self.paths.sources):
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from typing import List, Optional
|
from typing import List
|
||||||
|
|
||||||
from ahriman.core.configuration import Configuration
|
from ahriman.core.configuration import Configuration
|
||||||
from ahriman.core.exceptions import BuildFailed
|
from ahriman.core.exceptions import BuildFailed
|
||||||
@ -37,8 +37,10 @@ class GPGWrapper:
|
|||||||
self.sign = SignSettings.from_option(config.get('sign', 'enabled'))
|
self.sign = SignSettings.from_option(config.get('sign', 'enabled'))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def repository_sign_key(self) -> Optional[str]:
|
def repository_sign_args(self) -> List[str]:
|
||||||
return self.key if self.sign == SignSettings.SignRepository else None
|
if self.sign != SignSettings.SignRepository:
|
||||||
|
return []
|
||||||
|
return ['--sign', '--key', self.key] if self.key else ['--sign']
|
||||||
|
|
||||||
def process(self, path: str) -> List[str]:
|
def process(self, path: str) -> List[str]:
|
||||||
check_output(
|
check_output(
|
||||||
|
Loading…
Reference in New Issue
Block a user