mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
handle built packages during update
This commit is contained in:
parent
5d526e1bd8
commit
4866548224
@ -114,13 +114,18 @@ class Application:
|
||||
self.repository.process_sync(targets)
|
||||
|
||||
def update(self, updates: Iterable[Package]) -> None:
|
||||
def process_single(portion: Iterable[Package]):
|
||||
packages = self.repository.process_build(portion)
|
||||
self.repository.process_update(packages)
|
||||
def process_update(paths: Iterable[str]) -> None:
|
||||
self.repository.process_update(paths)
|
||||
self._finalize()
|
||||
|
||||
# process built packages
|
||||
packages = self.repository.packages_built()
|
||||
process_update(packages)
|
||||
|
||||
# process manual packages
|
||||
tree = Tree()
|
||||
tree.load(updates)
|
||||
for num, level in enumerate(tree.levels()):
|
||||
self.logger.info(f'processing level #{num} {[package.base for package in level]}')
|
||||
process_single(level)
|
||||
packages = self.repository.process_build(level)
|
||||
process_update(packages)
|
@ -63,8 +63,8 @@ class Repository:
|
||||
shutil.rmtree(os.path.join(self.paths.manual, package))
|
||||
|
||||
def _clear_packages(self) -> None:
|
||||
for package in os.listdir(self.paths.packages):
|
||||
os.remove(os.path.join(self.paths.packages, package))
|
||||
for package in self.packages_built():
|
||||
os.remove(package)
|
||||
|
||||
def packages(self) -> List[Package]:
|
||||
result: Dict[str, Package] = {}
|
||||
@ -80,6 +80,12 @@ class Repository:
|
||||
continue
|
||||
return list(result.values())
|
||||
|
||||
def packages_built(self) -> List[str]:
|
||||
return [
|
||||
os.path.join(self.paths.packages, fn)
|
||||
for fn in os.listdir(self.paths.packages)
|
||||
]
|
||||
|
||||
def process_build(self, updates: Iterable[Package]) -> List[str]:
|
||||
def build_single(package: Package) -> None:
|
||||
self.web.set_building(package.base)
|
||||
@ -99,10 +105,7 @@ class Repository:
|
||||
continue
|
||||
self._clear_build()
|
||||
|
||||
return [
|
||||
os.path.join(self.paths.packages, fn)
|
||||
for fn in os.listdir(self.paths.packages)
|
||||
]
|
||||
return self.packages_built()
|
||||
|
||||
def process_remove(self, packages: Iterable[str]) -> str:
|
||||
def remove_single(package: str) -> None:
|
||||
|
Loading…
Reference in New Issue
Block a user