PACORPHAN_PATH = os.path.expanduser("~/.pacorphan")
keep_pkg_list = []
+mark_explicit_list = []
+need_install_list = []
unneeded_pkg_list = []
+installed_pkg_list = []
explicit_pkg_list = []
def strip_comment(line):
if pkg:
keep_pkg_list.append(pkg.strip())
+for pkg in subprocess.check_output(["pacman", "-Qq"]).decode("utf-8").split():
+ installed_pkg_list.append(pkg.strip())
+
for pkg in subprocess.check_output(["pacman", "-Qtq"]).decode("utf-8").split():
unneeded_pkg_list.append(pkg.strip())
if pkg in explicit_pkg_list:
explicit_pkg_list.remove(pkg)
else:
- print("# Not explicitly installed: " + pkg)
+ if pkg in installed_pkg_list:
+ mark_explicit_list.append(pkg)
+ else:
+ need_install_list.append(pkg)
if unneeded_pkg_list:
print("echo " + " ".join(explicit_pkg_list) + " | tr ' ' '\\n' >> ~/.pacorphan/keep")
print()
+if mark_explicit_list:
+ print("# Found packages which should be marked as explicitly installed")
+ print("sudo pacman -D --asexplicit " + " ".join(mark_explicit_list))
+ print()
+
+if need_install_list:
+ print("# Found packages which should be installed")
+ print("sudo pacman -S " + " ".join(need_install_list))
+ print()
+