+++ /dev/null
-#!/usr/bin/python
-
-import codecs
-import subprocess
-import os
-import sys
-
-PACORPHAN_PATH = os.path.expanduser("~/.pacorphan")
-
-keep_pkg_list = []
-unneeded_pkg_list = []
-explicit_pkg_list = []
-
-def strip_comment(line):
- pos = line.find("#")
- if pos >= 0:
- line = line[:pos]
- return line.strip()
-
-for dirpath, dirnames, filenames in os.walk(PACORPHAN_PATH):
- for filename in filenames:
- if filename.startswith("."):
- continue
- filename = os.path.join(dirpath, filename)
- for pkg in codecs.open(filename, "r", "utf-8"):
- pkg = strip_comment(pkg)
- if pkg in keep_pkg_list:
- print("# Duplicate entry: " + pkg)
- if pkg:
- keep_pkg_list.append(pkg.strip())
-
-for pkg in subprocess.check_output(["pacman", "-Qtq"]).decode("utf-8").split():
- unneeded_pkg_list.append(pkg.strip())
-
-for pkg in subprocess.check_output(["pacman", "-Qeq"]).decode("utf-8").split():
- explicit_pkg_list.append(pkg.strip())
-
-
-for pkg in keep_pkg_list:
- if pkg in unneeded_pkg_list:
- unneeded_pkg_list.remove(pkg)
-
- if pkg in explicit_pkg_list:
- explicit_pkg_list.remove(pkg)
- else:
- print("# Not explicitly installed: " + pkg)
-
-
-if unneeded_pkg_list:
- print("# Found packages to remove")
- print("sudo pacman -R " + " ".join(unneeded_pkg_list))
- print()
-
-if explicit_pkg_list:
- print("# Found explicitly installed packages to keep")
- print("echo " + " ".join(explicit_pkg_list) + " | tr ' ' '\\n' >> ~/.pacorphan/keep")
- print()
-