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)
|
self.repository.process_sync(targets)
|
||||||
|
|
||||||
def update(self, updates: Iterable[Package]) -> None:
|
def update(self, updates: Iterable[Package]) -> None:
|
||||||
def process_single(portion: Iterable[Package]):
|
def process_update(paths: Iterable[str]) -> None:
|
||||||
packages = self.repository.process_build(portion)
|
self.repository.process_update(paths)
|
||||||
self.repository.process_update(packages)
|
|
||||||
self._finalize()
|
self._finalize()
|
||||||
|
|
||||||
|
# process built packages
|
||||||
|
packages = self.repository.packages_built()
|
||||||
|
process_update(packages)
|
||||||
|
|
||||||
|
# process manual packages
|
||||||
tree = Tree()
|
tree = Tree()
|
||||||
tree.load(updates)
|
tree.load(updates)
|
||||||
for num, level in enumerate(tree.levels()):
|
for num, level in enumerate(tree.levels()):
|
||||||
self.logger.info(f'processing level #{num} {[package.base for package in level]}')
|
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))
|
shutil.rmtree(os.path.join(self.paths.manual, package))
|
||||||
|
|
||||||
def _clear_packages(self) -> None:
|
def _clear_packages(self) -> None:
|
||||||
for package in os.listdir(self.paths.packages):
|
for package in self.packages_built():
|
||||||
os.remove(os.path.join(self.paths.packages, package))
|
os.remove(package)
|
||||||
|
|
||||||
def packages(self) -> List[Package]:
|
def packages(self) -> List[Package]:
|
||||||
result: Dict[str, Package] = {}
|
result: Dict[str, Package] = {}
|
||||||
@ -80,6 +80,12 @@ class Repository:
|
|||||||
continue
|
continue
|
||||||
return list(result.values())
|
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 process_build(self, updates: Iterable[Package]) -> List[str]:
|
||||||
def build_single(package: Package) -> None:
|
def build_single(package: Package) -> None:
|
||||||
self.web.set_building(package.base)
|
self.web.set_building(package.base)
|
||||||
@ -99,10 +105,7 @@ class Repository:
|
|||||||
continue
|
continue
|
||||||
self._clear_build()
|
self._clear_build()
|
||||||
|
|
||||||
return [
|
return self.packages_built()
|
||||||
os.path.join(self.paths.packages, fn)
|
|
||||||
for fn in os.listdir(self.paths.packages)
|
|
||||||
]
|
|
||||||
|
|
||||||
def process_remove(self, packages: Iterable[str]) -> str:
|
def process_remove(self, packages: Iterable[str]) -> str:
|
||||||
def remove_single(package: str) -> None:
|
def remove_single(package: str) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user