handle built packages during update

This commit is contained in:
Evgenii Alekseev 2021-03-12 00:24:26 +03:00
parent 5d526e1bd8
commit 4866548224
2 changed files with 18 additions and 10 deletions

View File

@ -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)

View File

@ -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: