summaryrefslogtreecommitdiff
path: root/bin/clean_old_injected_packages
diff options
context:
space:
mode:
Diffstat (limited to 'bin/clean_old_injected_packages')
-rwxr-xr-xbin/clean_old_injected_packages91
1 files changed, 0 insertions, 91 deletions
diff --git a/bin/clean_old_injected_packages b/bin/clean_old_injected_packages
deleted file mode 100755
index 03d4a94..0000000
--- a/bin/clean_old_injected_packages
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/python
-
-import sys
-sys.path.insert(0, "/usr/lib/matter")
-sys.path.insert(0, "/usr/lib/entropy/lib")
-
-import os
-
-from entropy.server.interfaces import Server
-from entropy.i18n import _
-
-from matter.spec import SpecParser
-import matter.binpms.entropysrv # plugin registration
-
-
-PARTICLES_DIR = "/particles"
-
-
-if __name__ == "__main__":
-
- # collect particles
- particles = []
- for root, dirs, files in os.walk(PARTICLES_DIR):
- for name in files:
- if name.endswith(".particle"):
- particles.append(os.path.join(root, name))
-
- packages = set()
- for particle in particles:
- with open(particle, "r") as f:
- spec = SpecParser(f)
- data = spec.parse()
- if not data:
- continue
-
- if data.get("build-only", "no") != "yes":
- continue
-
- drop_injected = data.get("drop-old-injected", "no") == "yes"
- if not drop_injected:
- continue
- for p_packages in data.get("packages", []):
- packages.update(p_packages)
-
- packages = sorted(packages)
-
- srv = Server()
- for repository in srv.repositories():
-
- repo = srv.open_repository(repository)
- for package in packages:
-
- latest_package_id, _mrc = repo.atomMatch(package)
- if latest_package_id == -1:
- continue
-
- package_ids, _mrc = repo.atomMatch(package, multiMatch=True)
- if not package_ids:
- continue
-
- key_slots = set()
- for package_id in package_ids:
- key, slot = repo.retrieveKeySlot(package_id)
- key_slots.add((key, slot))
-
- key_slot_package_ids = set()
- for key, slot in key_slots:
- ks_package_ids = [x for x in repo.searchKeySlot(key, slot) \
- if repo.isInjected(x)]
- key_slot_package_ids.update(ks_package_ids)
-
- key_slot_package_ids.discard(latest_package_id)
- if key_slot_package_ids:
- key_slot_package_ids = sorted(key_slot_package_ids)
- atoms = [repo.retrieveAtom(x) for x in key_slot_package_ids]
- atoms.sort()
-
- latest_atom = repo.retrieveAtom(latest_package_id)
- srv.output("%s is the latest package" % (latest_atom))
- srv.output("removing old packages:")
- for atom in atoms:
- srv.output(" %s" % (atom,))
- resp = srv.ask_question("Really remove?")
- if resp != _("Yes"):
- continue
-
- srv.remove_packages(
- repository, key_slot_package_ids)
- srv.commit_repositories()
-
- srv.destroy()