mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-08 10:54:15 +02:00
[flatpak] sorting packages before updating
This commit is contained in:
@@ -469,3 +469,28 @@ class FlatpakManager(SoftwareManager):
|
||||
except:
|
||||
return False, [traceback.format_exc()]
|
||||
|
||||
def sort_update_order(self, pkgs: List[FlatpakApplication]) -> List[FlatpakApplication]:
|
||||
partials, runtimes, apps = [], [], []
|
||||
|
||||
for p in pkgs:
|
||||
if p.runtime:
|
||||
if p.partial:
|
||||
partials.append(p)
|
||||
else:
|
||||
runtimes.append(p)
|
||||
else:
|
||||
apps.append(p)
|
||||
|
||||
if not runtimes:
|
||||
return [*partials, *apps]
|
||||
elif partials:
|
||||
all_runtimes = []
|
||||
for runtime in runtimes:
|
||||
for partial in partials:
|
||||
if partial.base_id == runtime.id:
|
||||
all_runtimes.append(partial)
|
||||
|
||||
all_runtimes.append(runtime)
|
||||
return [*all_runtimes, *apps]
|
||||
else:
|
||||
return [*runtimes, *apps]
|
||||
|
||||
@@ -10,7 +10,7 @@ class FlatpakApplication(SoftwarePackage):
|
||||
|
||||
def __init__(self, id: str = None, name: str = None, version: str = None, latest_version: str = None, description: str = None,
|
||||
branch: str = None, arch: str = None, origin: str = None, runtime: bool = False, ref: str = None, commit: str = None,
|
||||
installation: str = None, i18n: I18n = None):
|
||||
installation: str = None, i18n: I18n = None, partial: bool = False):
|
||||
super(FlatpakApplication, self).__init__(id=id, name=name, version=version,
|
||||
latest_version=latest_version, description=description)
|
||||
self.ref = ref
|
||||
@@ -19,7 +19,7 @@ class FlatpakApplication(SoftwarePackage):
|
||||
self.origin = origin
|
||||
self.runtime = runtime
|
||||
self.commit = commit
|
||||
self.partial = False
|
||||
self.partial = partial
|
||||
self.installation = installation if installation else 'system'
|
||||
self.i18n = i18n
|
||||
self.base_id = None
|
||||
|
||||
Reference in New Issue
Block a user