From 763313adada4cd4bf719273ae814a06ea76d66d2 Mon Sep 17 00:00:00 2001 From: Martinez Date: Sat, 11 Jun 2016 21:43:04 +0200 Subject: [PATCH] added cave-rdep and cave-stat --- bin/cave-rdep | 32 ++++++++++++++++++++++++++++++++ bin/cave-stat | 20 ++++++++++++++++++++ ebuild/over-prompt-9999.ebuild | 3 +++ 3 files changed, 55 insertions(+) create mode 100755 bin/cave-rdep create mode 100755 bin/cave-stat diff --git a/bin/cave-rdep b/bin/cave-rdep new file mode 100755 index 0000000..cfc030f --- /dev/null +++ b/bin/cave-rdep @@ -0,0 +1,32 @@ +#! /usr/bin/env python3 +# encoding: utf-8 + +import glob +import re +import sys + +def grep(exp, filename): + with open(filename) as f: + matches = re.findall(exp, f.read()) + + return matches + +def find_reverse_deps(deps): + all_dep_files = glob.glob("/var/db/pkg/*/*/*DEPEND") + + regexp = "(%s)[^:]*:[^/]+/[^=]+=" %("|".join(deps)) + matching_files = set(f for f in all_dep_files if grep(regexp, f)) + atoms = set("=" + f[12:].rsplit("/", 1)[0] for f in matching_files) + + return atoms + + +if __name__ == "__main__": + if len(sys.argv) > 1: + atoms = find_reverse_deps(sys.argv[1:]) + print(" ".join(sorted(atoms))) + else: + print("Usage: %s DEPENDENCY [more DEPENDENCIES...]" %(sys.argv[0])) + print("Finds all reverse deps of DEPENDENCY") + + sys.exit(1) diff --git a/bin/cave-stat b/bin/cave-stat new file mode 100755 index 0000000..3cfeaab --- /dev/null +++ b/bin/cave-stat @@ -0,0 +1,20 @@ +#! /usr/bin/env python3 +# encoding: utf-8 + +import psutil + +def cave_stat(): + for proc in psutil.process_iter(): + if proc.name() == "cave": + cmdline = proc.cmdline() + + if "--x-of-y" in cmdline: + position = cmdline[-1] + dest_idx = cmdline.index("--destination") + atom = cmdline[dest_idx - 1] + + yield "Installing %s (%s)" %(atom, position) + +if __name__ == "__main__": + for state in cave_stat(): + print(state) diff --git a/ebuild/over-prompt-9999.ebuild b/ebuild/over-prompt-9999.ebuild index 2ba2aff..ca878ee 100644 --- a/ebuild/over-prompt-9999.ebuild +++ b/ebuild/over-prompt-9999.ebuild @@ -23,6 +23,9 @@ src_compile() { } src_install() { + dobin bin/cave-rdep + dobin bin/cave-stat + insopts -m755 insinto /usr/libexec/